【发布时间】:2019-03-11 20:59:28
【问题描述】:
我是 Struts2 的新手,很抱歉我的英语不好,因为它不是我的母语。
假设表单有 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 或注释而不是在 action 类中编写 validate() 方法来做到这一点,因为当字段增长时,代码将太长而无法读取和维护。
我已经做了类似下面的事情,但逻辑不正确,因为它仍然需要选择所有三个选项。
@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; }
【问题讨论】:
标签: validation jsp struts2 annotations conditional