2

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

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

struts2 中的日期标签只能用于输出。

4

3 回答 3

2

您可以将格式传递给s:date标签

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

要更改默认错误消息,validation.xml您可以添加 message 参数

   <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

您可以使用自定义转换器将文本字段用于日期,例如

于 2012-05-25T02:44:01.543 回答
0

The date format Struts accepts depends on the user's locale. So for different locales you can have different date formats. This way you won't be able to support multiple date formats for the same locale but I don't see why you would need this anyway, it's only going to confuse your users. The only way to support different date formats for the same locale without javascript would be with a custom date converter as @mprabhat notes.

于 2012-05-25T11:58:35.707 回答
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

于 2012-06-12T16:05:39.720 回答