Я новичок на Struts2 и сожалею о своем бедном английском, поскольку это не мой родной язык.Как проверить корректность поля с помощью проверки Struts 2?
Пусть форма имеет 1 множественное поле выбора и 3 текстовых поля:
Несколько Выберите поле: Имя: sb01
, Функции: [value, label]
: [1, Type1], [2, Type2], [3, Type3]
<s:select name="sb01" multiple="multiple" list="#{1:'Type1', 2:'Type2',3:'Type3'}"></s:select>
3 текстовых поля: (TextField1
, TextField2
, TextField3
)
<s:textfield name="TextField1" />
<s:textfield name="TextField2" />
<s:textfield name="TextField3" />
Если выбрано Type1, пользователю необходимо ввести TextField1.
Если выбрано Type2
, то пользователю необходимо ввести TextField2
.
Если выбрано Type3, пользователю необходимо ввести TextField3.
Если выбрано Type1,2,3, пользователю необходимо ввести все текстовые поля. и так далее.
Как можно условно проверить текстовые поля? Я хотел бы сделать это с помощью xml или аннотации вместо написания метода validate() в классе action, потому что код будет слишком длинным для чтения и сохранения при росте полей.
Я сделал что-то вроде ниже, но логика неверна, так как по-прежнему требуются все три варианта.
@FieldExpressionValidator(expression = "sb01.contain(1)", message="")
@RequiredStringValidator(message = "please fill in Textfield1.")
public String getTextField1(){ return TextField1; }
@FieldExpressionValidator(expression = "sb01.contain(2)", message="")
@RequiredStringValidator(message = "please fill in Textfield2.")
public String getTextField2(){ return TextField2; }
@FieldExpressionValidator(expression = "sb01.contain(3)", message="")
@RequiredStringValidator(message = "please fill in Textfield3.")
public String getTextField3(){ return TextField3; }