Jeff, your code suggests a better way to make date format configurable.
Thanks
-Dan
----- Original Message -----
From: "Jeff Kyser" <[EMAIL PROTECTED]>
To: "Struts Users Mailing List" <[EMAIL PROTECTED]>
Sent: Saturday, March 29, 2003 4:45 PM
Subject: Re: example of PlugIn for java.sql.Date Converter registration
> Hi all,
>
> as a follow-up to my question, wanted to thank Dan Tran for his help
> and also Rick Reumann for his.
>
> I was trying to add a PlugIn in the struts-config.xml file to augment
> the functionality of the BeanUtils.copyProperties function to handle
> java.util.Date going from a form to a model bean.
>
> If this was obvious to others, please excuse the post, but it sure
> wasn't obvious to me. I ended up reviewing the sources for the
> validator and tiles plugins to get this to work.
>
> Here's a snippet from my struts-config.xml file; in addition to loading
> the custom converters, I wanted to be able to supply a value to be
> used by the SimpleDateFormat, hence my "dateFormat" property below.
>
> <!-- A PlugIn to extend BeanUtils.copyProperties to handle
> java.sql.Date -->
> <plug-in className="torch.beans.ConvertUtils.ConverterPlugIn">
> <set-property property="dateFormat" value="yyyy-MM-dd"/>
> </plug-in>
>
> And here's (below) the init() method I ended up with as a part of
> implementing
> the PlugIn interface. The basics came from Dan, and finding the
> proper PlugIn to retrieve my "dateFormat" property was gleaned
> from the sources.
>
> Well, it works, but as to whether there is a cleaner/shorter way to
> do this, I don't know, but would be glad to hear it.
>
> regards,
>
> -jeff
>
> public final class ConverterPlugIn implements
> org.apache.struts.action.PlugIn {
> /**
> * init - implements the PlugIn interface
> */
> public void init(ActionServlet servlet, ModuleConfig config)
> throws ServletException {
>
> PlugInConfig[] plugs = config.findPlugInConfigs();
> boolean found = false;
> int i = 0;
> while (i < plugs.length && !found) {
> if
> (this.getClass().getName().equals(plugs[i].getClassName()))
> found = true;
> else
> i++;
> }
> if (found) {
> Object fmt = plugs[i].getProperties().get("dateFormat");
> if (fmt != null)
> setDateFormat(fmt.toString());
> }
>
> ConvertUtils.register(new DateConverter(), Date.class);
> ConvertUtils.register(new StringConverter(), String.class);
> }
>
> public static void setDateFormat(String fmt) {
> fmt_ = fmt;
> }
>
> I had a default format, in case there wasn't one in the config file,
> and in the DateConverter, I retrieved the date format...
>
> On Thursday, March 27, 2003, at 08:40 PM, Jeff Kyser wrote:
>
> > Hi,
> >
> > I want to use BeanUtils.copyProperties to copy FROM my model TO my
> > form,
> > and I have java.sql.Dates in my model.
> >
> > From numerous related posts, I glean that the best place for a
> > a custom Converter to be registered is in a PlugIn in your
> > struts-config.xml file.
> >
> > 1. Does anyone have an example of this they could offer up? i think
> > I've
> > broken google...
> >
> > 2. Do you really have to do this to get a java.sql.Date from a model
> > bean onto
> > a form as a String using BeanUtils? or is there a better way?
> >
> > thanks,
> >
> > -jeff
> >
> >
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]