2009-07-04 1 views
3

Я создаю форму, в которой пользователь зарегистрируется в приложении struts2. Пользователь должен будет ввести дату в определенном формате.Проверка даты в struts2

Поскольку я не собираюсь использовать DatePicker АЯКС тег, я использую текстовое поле с меткой даты в форме, как это:

<s:date name="birthDate" id="bDateId" format="yyyy-MM-dd"/> 
<s:textfield name="birthDate" id="%{bDateId}" label="Birth Date (yyyy-MM-dd)"/> 

Основной объект пользователя имеет поле Строки для представления даты , Поэтому мой вопрос заключается в том, что существует метод straighforward для применения проверки в отношении формата ввода пользователя для поля даты. Валидатор дат, предоставляемый struts2, может использоваться для проверки только диапазонов дат, но не для конкретных форматов.

Может кто-нибудь порекомендует способ сделать это, или не будет указывать на пример пользовательского валидатора?

Спасибо за ваши советы привет всем

ответ

1

Вы могли бы, вероятно, довольно легко проверить это с помощью регулярных выражений валидатора. Что-то вроде:

<field name="birthDate"> 
    <field-validator type="regex"> 
     <param name="expression">[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]</param> 
     <message>The value must be in the format yyyy-MM-dd</message> 
</field-validator> 

+0

Если объект является дата, она не будет работать сразу, вам нужно использовать объект типа String для хранения значения и передать его потом ... – tinky05

+1

Это подтверждает 3333-33 -33 как дата, поэтому его нельзя использовать – batbaatar

+0

Я пытаюсь это сделать, но не работает для меня – p27

1

Вы можете проверить это с датой проверки подлинности. Что-то вроде:

<field name="fecha"> 

     <field-validator type="date"> 
      <param name="min">01/01/1900</param> 
      <param name="max">01/01/9999</param> 
      <message key="error.fecha.rango.invalido"/> 
     </field-validator>  
    </field> 
+2

См. Документ о: http://struts.apache.org/2.0.12/docs/validation.html –