如何使用特定格式将日期绑定到条纹?"MM/dd/yyyy HH:mm:ss"
<s:text name="myDateTime" formatPattern="MM/dd/yyyy HH:mm:ss" />
Stripes 使用Typeconverters将请求参数(字符串)转换为特定类型。默认日期类型转换器的 javadoc 可以在这里找到:
net.sourceforge.stripes.validation.DateTypeConverter
要更改它声明的默认格式:
可以通过在 Stripes 资源包中提供一组不同的格式字符串,或通过子类化和覆盖 getFormatStrings() 来更改此默认格式集。在所有情况下,应使用单个空格而不是斜杠、破折号或其他字符来指定模式。
和:
资源包中用于指定格式字符串和预处理模式的键是:stripes.dateTypeConverter.formatStrings 和 stripes.dateTypeConverter.preProcessPattern
如果那不适合您,您可以随时滚动您自己的TypeConverter。然后可以通过以下方式将此自定义类型转换器绑定到 ActionBean 中的设置器:
@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;
}
<fmt:formatDate timeZone="${timeZone}" value="${date}" pattern="MM/dd/yyyy hh:mm a"/>
SimpleDateFormat将能够为您提供帮助。