我想知道是否有办法强制输入struts中的日期格式,比如dd / MM / yyyy。
日期写在文本字段中。我读到这是一个区域敏感的主题,但是为了简单地改变格式而切换区域设置似乎太多了。
我知道我可以在Action类的方法中调用addFieldError(fieldName, errorMessage)
,但对我来说,感觉就像是一个日期格式应该被认为是在Action-validation.xml文件中配置的。我搜索配置属性文件,但没有找到工作示例。
使用自定义StrutsTypeConverter
和addFieldError(fieldName, errorMessage)
是唯一的方法吗?或者是否有另一个版本的struts,其中可以指定在文本字段中输入的日期格式?
更新:
我以为我已经足够清楚了,但是其他一些答案也是如此
用例是:用户在文本字段中手动输入任意格式的日期,然后struts2验证日期格式是否与程序员设置的格式相对应,相应地显示消息。
带有<s:date>
标记的jQuery日期选择器可以替代我想要实现的目标,但它不我的要求。此外,Javascript可以被禁用,使得日期选择器无用,jQuery是一个Javascript库,据我所知。
答案 0 :(得分:0)
我的操作实现了ModelDriven
但是日期格式无法在文本字段中强制提供,我确实使用了自己的验证器,但我将表单元素的映射更改为{{ 1}}在动作类中命名,然后使用带有String
的验证器,从资源包中检索格式将其转换为日期,然后再次格式化日期,以查看表示是否与在文本字段中输入的那个。毕竟格式很清楚。
如果有其他建议我欢迎他们,这似乎是唯一的选择
我发现这个缺点至少很烦人。
答案 1 :(得分:0)
如果您希望在页面上使用特定格式的日期,我建议您使用struts 2 jquery datepicker
。您可以在this url找到以下演示。转到widgets
标签,选择datepicker
。