我有一张地图,我想通过使用表达式验证在struts 2验证框架中验证如何动态访问地图元素?
如果映射myMap;如何用动态密钥验证地图?如果mymap有像“Salary”这样的静态键,我可以像
一样验证<field
name="myMap['Salary']">
<field-validator
type="regex">
<param
name="expression">[0-9]+[.][0-9]+</param>
<message>${getText("errors.validation.number")}</message>
</field-validator>
</field>
感谢,
海伦
答案 0 :(得分:1)
有两种方法可以在声明性验证中使用myApp。
您需要使用上述符号之一,该符号基于您如何定义输入表单字段。
例如,如果您的输入表单如下所示,那么您需要使用。操作员,因为你正在使用。定义输入字段名称时的运算符。
<s:form action="sayHello">
<s:textfield name="myMap.salary" label="Salary">
<s:submit/>
</s:form>
如果使用[] opertaor定义输入字段的名称,则使用[]运算符访问验证器中的属性。
因此,上面的验证代码是正确的,您只需要使用[]运算符在输入表单中正确定义输入字段。
希望这有帮助
答案 1 :(得分:1)
Hibernate Validator Framework 具有递归验证功能。
Struts2有一个插件使用它:
完整的Hibernate插件:http://cwiki.apache.org/S2PLUGINS/full-hibernate-plugin.html
答案 2 :(得分:0)
我认为您无法在声明性验证中执行此操作。我建议你下载到这个验证方法,或者如果你正在使用框架生成的javascript验证,那么在javascript中进行验证。