【问题标题】:Input Date in Struts2在 Struts2 中输入日期
【发布时间】:2012-05-25 01:03:25
【问题描述】:

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

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

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

【问题讨论】:

  • 这有点令人困惑......通过接受你的意思是什么是输入?在这种情况下,预计日期格式将基于用户区域设置。如果您打算在 JSP 上对其进行格式化,我会说这是一个不同的问题,尽管我希望有一个设置可以全局设置格式,但我认为没有。 mprabhat 展示了如何在 JSP 端进行格式化。
  • 是的。接受,我的意思是输入。如果可能,我希望我的用户以不同的格式输入。

标签: struts2


【解决方案1】:

您可以将格式传递给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

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

【讨论】:

  • 标签将格式化显示。我想要的是允许用户在文本字段中输入不同的格式。
  • 所以没有客户端脚本就不能在struts2中设置?好的,谢谢。
  • 如果你使用 jQuery 插件,那是很有可能的,但你是正确的,客户端脚本是在幕后完成的
  • @JRGalia 如果你想要 Struts 和文本字段,请使用 CustomConverter,更新我的帖子
【解决方案2】:

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

【讨论】:

    【解决方案3】:

    您可以查看官方文档:

    定义资源包中每种语言的格式。例如,适当的 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-24
      • 2013-05-16
      • 1970-01-01
      • 2022-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多