Struts2中的输入日期

时间:2012-05-25 01:03:25

标签: struts2

如何在struts中更改java.util.Date对象的格式2.我测试过,Struts 2接受m / d / yy。是否可以更改格式?

还有如何更改默认消息“字段日期的字段值无效”?

struts2中的

日期标记只能用于输出。

3 个答案:

答案 0 :(得分:2)

您可以将格式传递给s:date代码

<s:date name="myDate" format="yyyy-MM-dd" />

要更改默认错误消息,请在validation.xml中添加消息参数

   <field name="myDate">
        <field-validator type="date">
            <message key="errors.myDateRequired" />
        </field-validator>
    </field>

然后在ApplicationResources.properties文件中,您将为errors.myDateRequired

提供价值

更新:根据评论

s:date只是一个只读标记,表示不能用于接受来自用户的输入。

为了让textField能够接受不同格式的日期,有几种方法:

  1. 使用struts2-jQuery插件,它有一个非常好的日期选择器,支持不同的日期时间格式,showcaseDatePickerTag
  2. 自定义javascript代码以格式化用户输入。
  3. 使用jQuery(如果允许)并使用jQuery datepicker
  4. 您可以使用自定义转换器将文本字段用于日期example

答案 1 :(得分:0)

Struts接受的日期格式取决于用户的语言环境。因此对于不同的区域设置,您可以使用不同的日期格式这样你就无法为同一个语言环境支持多种日期格式,但我不明白为什么你还需要它,它只会让你的用户感到困惑。在没有javascript的情况下,为同一语言环境支持不同日期格式的唯一方法是将自定义日期转换为@mprabhat notes。

答案 2 :(得分:0)

您可以看到关于此的官方文档:

定义资源包的每种语言的格式。例如,适当的en_US格式定义扩展名可能如下所示:

format.date = {0,date,MM/dd/yy}

同时,您可以将以下内容添加到de_DE包中:

format.date = {0,date,dd.MM.yyyy}

http://struts.apache.org/2.1.6/docs/formatting-dates-and-numbers.html