【问题标题】:Spring webflow date binderSpring webflow 日期活页夹
【发布时间】:2013-08-25 04:48:00
【问题描述】:

我是使用 webflow 的新手,在为日期绑定制作自定义转换器时遇到了一些麻烦(我需要更改 'dd-MM-yyyy' 的默认模式)

所以我正在尝试做这样的事情:

    <view-state id="viewAnexos" view="myview" model="myModelBean">  
        <binder> 
            <binding property="anyDateOfTheBean" required="true" converter="customConverter"/>     <!-- the type is java.util.Date -->
        </binder>

        <transition on="saveAnexo" to="viewAnexos" bind="true">
            <evaluate expression="myController.saveAction(myModelBean, messageContext)" />
        </transition>
    </view-state>

我已经定义了 ConversionService

    @Service("conversionService")
    public class FlowConversionService extends DefaultConversionService {

        public void FlowConversionService() {
            addDefaultConverters();
        }

        @Override
        protected void addDefaultConverters() {
            super.addDefaultConverters();
            addConverter(new StringToDateCustomConverter());
            addConverter("customCoverter,"new StringToDateCustomConverter()); //This method is deprecated, so how should I do it?
        }
    }

还有自定义转换器

public class StringToDateCustomConverter extends StringToObject {

private DateFormat format = null;

public StringToDateCustomConverter() {
    super(StringToDateCustomConverter.class);
    format = new SimpleDateFormat("dd/MM/yyyy");
}

@Override
protected Object toObject(String string, Class targetClass) throws ParseException {
    return format.parse(string);
}

@Override
protected String toString(Object object) {
    return format.format((Date) object);
}

}

在我的 servlet.xml 文件中,我已经定义了

    <webflow:flow-builder-services 
    id="flowBuilderServices" 
    view-factory-creator="mvcViewFactoryCreator"
    conversion-service="conversionService"/>

    <bean id="conversionService" class="es.xunta.emprego.converter.FlowConversionService"/> 

在这一切之后,我遇到了下一个错误:

        org.springframework.binding.convert.ConversionExecutorNotFoundException: Custom ConversionExecutor with id 'customConverter' cannot convert from sourceClass [java.lang.String] to targetClass [java.util.Date]

关于我在这里缺少什么的任何想法..?提前谢谢...

【问题讨论】:

    标签: date data-binding binding converter spring-webflow


    【解决方案1】:

    我刚刚更改了一些内容,现在可以使用了。

    1.-将StringToDateCustomConverter重命名为StringToDate。

    2.-ConversionService 改变了这种方式

    @Service("conversionService")
    public class FlowConversionService extends DefaultConversionService {
    
        @Override
        protected void addDefaultConverters() {
            super.addDefaultConverters();
            addConverter(new StringToDate()); //This is overrided
        }
    
    }
    

    3.-flow.xml中的binder不再需要了,所以...

        <view-state id="viewAnexos" view="myview" model="myModelBean"> 
            <transition on="saveAnexo" to="viewAnexos" bind="true">
                <evaluate expression="myController.saveAction(myModelBean, messageContext)" />
            </transition>
        </view-state>
    

    就是这样,它工作正常!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-22
      • 1970-01-01
      • 2012-05-23
      • 1970-01-01
      • 2014-11-10
      • 2011-07-29
      相关资源
      最近更新 更多