如何使用特定格式将日期绑定到条纹中?月/日/年 时:分:秒

发布于 2024-09-24 07:46:32 字数 212 浏览 3 评论 0原文

如何使用特定格式将日期绑定到 stripes 中? “月/日/年 时:分:秒”

<s:text name="myDateTime" formatPattern="MM/dd/yyyy HH:mm:ss" />

How do you bind a Date to in stripes using a specific format? "MM/dd/yyyy HH:mm:ss"

<s:text name="myDateTime" formatPattern="MM/dd/yyyy HH:mm:ss" />

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

吻安 2024-10-01 07:46:32

Stripes 使用 Typeconverters 来转换请求参数(字符串)到特定类型。默认日期类型转换器的 javadoc 可以在这里找到:

net.sourceforge.stripes.validation.DateTypeConverter

要更改其声明的默认格式:

可以通过在 Stripes 资源包中提供一组不同的格式字符串,或者通过子类化和重写 getFormatStrings() 来更改此默认格式集。在所有情况下,都应使用单个空格作为分隔符而不是斜杠、破折号或其他字符来指定模式。

和:

资源包中用于指定格式字符串和预处理模式的键是:
stripes.dateTypeConverter.formatStrings 和 stripes.dateTypeConverter.preProcessPattern

如果这不适合你,你可以随时滚动你自己的 类型转换器。这个自定义类型转换器可以是 通过以下方式绑定到 ActionBean 中的 setter

@Validate(converter=YourCustomTypeConverter.class)
public void setDate(Date date) {
  this.date = date;
}

如果您想让映射自动完成,您需要覆盖默认映射器或创建另一个(子)类型。例如,您不是为 java.util.Date 创建自己的类型转换器,而是为继承自 java.util.Date 的您自己的自定义类型创建类型转换器。由于它只是一个子类型,没有任何额外的行为,因此应用程序的其余部分可以将其用作 java.util.Date。

Date date;

// No @validate needed, maps to MyCustomDate
public void setDate(MyCustomDate date) {
  this.date = date;
}     

Stripes uses Typeconverters for converting request parameters (Strings) to specific types. The javadoc for the default Date type converter can be found here:

net.sourceforge.stripes.validation.DateTypeConverter

To change the default formats it states:

This default set of formats can be changed by providing a different set of format strings in the Stripes resource bundle, or by sub classing and overriding getFormatStrings(). In all cases patterns should be specified using single spaces as separators instead of slashes, dashes or other characters.

And:

The keys used in the resource bundle to specify the format strings and the pre-process pattern are:
stripes.dateTypeConverter.formatStrings and stripes.dateTypeConverter.preProcessPattern

If that does not do it for you, you can always roll you're own TypeConverter. This custom type converter can then be bound to a setter in the ActionBean by:

@Validate(converter=YourCustomTypeConverter.class)
public void setDate(Date date) {
  this.date = date;
}

If you want to let the mapping be done automatically you either need to override the default mapper or create another (sub) type. For example, you create your own type converter not for java.util.Date but for your own custom type that inherits from java.util.Date. As it's just a sub type without any extra behavior, the rest of the application can use it as java.util.Date.

Date date;

// No @validate needed, maps to MyCustomDate
public void setDate(MyCustomDate date) {
  this.date = date;
}     
度的依靠╰つ 2024-10-01 07:46:32
<fmt:formatDate timeZone="${timeZone}" value="${date}" pattern="MM/dd/yyyy hh:mm a"/>
<fmt:formatDate timeZone="${timeZone}" value="${date}" pattern="MM/dd/yyyy hh:mm a"/>
一直在等你来 2024-10-01 07:46:32

SimpleDateFormat 将能够帮助您。

SimpleDateFormat will be able to help you.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文