Может кто-нибудь пожалуйста, дайте мне знать, как проверить, если дата начала> дата окончания в Struts 2 validation.xmlStruts 2 проверки
ответ
Поскольку вы выполняете проверку на двух полях, один подход заключается в создании пользовательского валидатора, что работает на объекте (например, пользователь), который содержит дату начала и окончания, в отличие от проверки полей независимо. Тогда вы могли бы просто сделать какую-то простую арифметику для сопоставления даты.
Общий термин, они используют проверки без поля (или проверки доменов), которая покрыта here
Там хороший пример в source code for the Manning book Struts 2 in Action, глава 10.
Я думаю, что вы можете сделать это с OGNL expression validator. Что-то вроде:
<validator type="expression">
<param name="expression">startDate.before(endDate)</param>
<message>Start Date must be after End Date</message>
</validator>
вы знаете Hibernate Validator Framework ли? Это отличная основа для проверки, основанная на аннотациях.
А есть плагин для Struts2:
Полный спящий режим плагин: http://cwiki.apache.org/S2PLUGINS/full-hibernate-plugin.html
Если вы используете объекты java.util.Date, это работает для меня.
<validator type="expression">
<param name="expression"><![CDATA[
startDate.time < endDate.time
]]></param>
<message>Start Date must be after End Date</message>
</validator>