我已将 Sturts2 应用程序配置为对我的操作使用验证 xml。我也有 fieldexpress 工作。
是否可以从表达式中的操作中调用方法。
例如:
<field name="myField">
<field-validator type="fieldexpression">
<param name="expression"><![CDATA[
@com.test.MyClass@isCaptchaOk(keyString, userResponce)
]]></param>
<message>My credit limit should be MORE than my girlfriend's</message>
</field-validator>
</field>
这是我的实际测试代码,简单的字段表达式有效,但函数调用一无效(请参阅 tbox1)。
我不确定 @class@method 路径是否正常,但不起作用
因为,我已经在函数中添加了登录,但没有任何结果,所以我认为验证器无法访问这些函数。
另外,这是否可能,即是否允许,或者我是否过于雄心勃勃。
Thanks
PS我已经更正了这条信息,我不会交易我的女朋友;-)****验证.xml
<!DOCTYPE validators PUBLIC
"-//OpenSymphony Group//XWork Validator 1.0.2//EN"
"http://struts.apache.org/dtds/xwork-validator-1.0.2.dtd">
<validators>
<field name="tbox1">
<field-validator type="fieldexpression">
<param name="expression"><![CDATA[@uk.co.nhbc.userRegistration.action.Test2Action@getString()]]></param>
<message>function call message here</message>
</field-validator>
<field-validator type="fieldexpression">
<param name="expression"><![CDATA[@uk.co.nhbc.userRegistration.action.Test2Action@isCaptchaOk(tbox1, user.username)]]></param>
<message>function call message here</message>
</field-validator>
</field>
<field name="tbox2">
<field-validator type="stringlength">
<param name="maxLength">5</param>
<message>length messssage here</message>
</field-validator>
</field>
<field name="user.username">
<field-validator type="fieldexpression">
<param name="expression"><![CDATA[(!(tbox2 == "aa" && user.username.equals("")))]]></param>
<message>tbox2 eq aa and username is empty messssage2 here</message>
</field-validator>
</field>
</validators>
*******
为了在表达式中调用静态方法(必须是 OGNL),您应该通过将以下常量添加到 struts.xml 文件来启用 struts.ognl.allowStaticMethodAccess:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)