Sorry, my English is poor, I try my best to make everyone understand what I 
wrote.

In fact, I want to ask :  is it possible to define one <field-handler/> and use 
it in everywhere ?

Joey

> -----邮件原件-----
> 发件人: avner21J [mailto:[email protected]]
> 发送时间: 2011年3月9日 17:28
> 收件人: [email protected]
> 主题: Re: [castor-user] how to reuse the field-handler defined in mapping file?
> 
> 
> Joey,
> 
> How does this post of yours relate to the original problem?
> 
> Don't clutter with unrelated posts and make it difficult for others to
> understand.
> 
> 
> 
> 吕晓一 wrote:
> >
> > Hi, my project use Castor, and I have one question.
> >
> > I created a field handler named TimeHander.java like this:
> >
> > public class TimeHandler extends GeneralizedFieldHandler {
> >
> >     private SimpleDateFormat formatter = new
> SimpleDateFormat("yyyyMMdd");
> >
> >     public TimeHandler() {
> >         super();
> >     }
> >
> >     public void setConfiguration(Properties config) throws
> > ValidityException {
> >         String pattern = config.getProperty("date-format");
> >         if (pattern == null) {
> >             throw new ValidityException("need parameter
> \"date-format\"");
> >         }
> >         try {
> >             formatter = new SimpleDateFormat(pattern);
> >         } catch (IllegalArgumentException e) {
> >             throw new ValidityException("the parameter \"" + pattern +
> "\"
> > invalid");
> >         }
> >     }
> >
> >
> >     public Object convertUponGet(Object value) {
> >         if (value == null) return null;
> >         Date date = (Date) value;
> >         return formatter.format(date);
> >
> >     }
> >
> >     public Object convertUponSet(Object value) {
> >         Date date = null;
> >         try {
> >             if (StringUtils.isEmpty((String) value)) {
> >                 return date;
> >             }
> >             date = formatter.parse((String) value);
> >         }
> >         catch (ParseException px) {
> >             throw new IllegalArgumentException(px.getMessage());
> >         }
> >         return date;
> >
> >     }
> >
> >     public Class getFieldType() {
> >         return Date.class;
> >     }
> >
> >
> >     public Object newInstance(Object parent) throws IllegalStateException
> > {
> >         return null;
> >     }
> > }
> >
> >
> > and my Java bean has two java.util.Date type fields,
> > to make Castor work correctly,
> > I have to define two <field-handler/> in mapping file like this:
> > ...
> > ...
> > <field-handler name="timeHandler1" class="TimeHandler">
> >
> > </field-handler>
> > <field-handler name="timeHandler2" class="TimeHandler">
> >
> > </field-handler>
> > ...
> > ...
> > <class name="Mybean ">
> >     <map-to xml="MyBean"/>
> >     <field name="time1" type="java.lang.String" handler="timeHandler1">
> >         <bind-xml name="Time1" node="element"/>
> >     </field>
> >     <field name="time2" type="java.lang.String" handler="timeHandler2">
> >         <bind-xml name="Time2" node="element"/>
> >     </field>
> > </class>
> > ....
> >
> > that's mean: one field , one  <field-handler/> , even the same processing
> > logic.
> >
> > But my project has dozens of Java beans, and has dozens of Date-type
> > fileds,
> > so, I have to define dozens of <field-handler/>, it is so terrible....
> >
> > Is there any advices?
> >
> > Regards
> >
> > Joey
> >
> > 2011-3-9
> >
> >
> >
> >
> 
> --
> View this message in context:
> http://old.nabble.com/UnmarshalException-for-xml-created-by-Castor-Marshal
> ler-tp31097277p31104647.html
> Sent from the Castor - User mailing list archive at Nabble.com.
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe from this list, please visit:
> 
>     http://xircles.codehaus.org/manage_email
> 

Reply via email to