我想知道是否有办法强制struts中日期的输入格式,例如 dd/MM/yyyy 。
日期写在文本字段中。我读到这是一个区域设置敏感主题,但为了简单地更改格式而切换区域设置似乎太多了。
我知道我可以打电话 addFieldError(fieldName, errorMessage)
在我的 Action 类的方法中,但对我来说,应该考虑在 Action-validation.xml 文件中配置日期格式。我搜索了使用属性文件来配置它,但没有找到有效的示例。
正在使用自定义StrutsTypeConverter
和addFieldError(fieldName, errorMessage)
唯一的办法是什么?或者是否有另一个版本的struts可以指定在文本字段中输入的日期格式?
更新:
我以为我已经说得足够清楚了,但有些答案却证明不然。
用例是:用户在文本字段中手动输入任意格式的日期,然后struts2验证日期格式是否与程序员设置的格式相对应,并相应地显示一条消息。
一个 jQuery 日期选择器,带有 <s:date>
标签可以是我想要实现的目标的替代方案,但它不是我所要求的。此外,Javascript 可以被禁用,使日期选择器变得无用,据我所知,jQuery 是一个 Javascript 库。
最佳答案
我的操作实现了 ModelDriven
但日期格式无法在文本字段中强制提供,我确实使用了自己的 validator ,但我将表单元素的映射更改为在操作类中命名的 String
,然后使用带有 SimpleDateFormat
的 validator 以及从资源包检索的格式将其转换为日期,然后再次格式化日期,查看表示形式是否与文本字段中输入的表示形式相同。毕竟格式已经很清楚了。
如果还有其他建议我欢迎,这似乎是唯一的选择。
我觉得这个缺点至少很烦人。
关于java - 如何在struts 2.2.3.1中输入特定日期格式的日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18119727/