我在使用 Struts 2 中的“Visitor”验证器时遇到问题。如果我对“context”参数进行硬编码,它可以正常工作。问题在于我需要这是一个 OGNL 表达式。
例如:
<validators>
<field name="model">
<field-validator type="visitor">
<param name="context">%{myAlias}</param>
<param name="appendPrefix">false</param>
<message />
</field-validator>
</field>
</validators>
这将在我的操作中调用“getMyAlias”方法(它成功了!),它返回一个字符串。
public class ValidationAction extends ActionSupport implements ModelDriven<ValidationModel>{
private ValidationModel xyz = new ValidationModel();
@Override
public String execute() throws Exception {
return SUCCESS;
}
@Override
public ValidationModel getModel() {
return xyz;
}
public String getMyAlias(){
return "b";
}
}
我创建了一个名为“ValidationModel-b-validation.xml”的验证 xml 文件,并将其与我的 ValidationModel.java 文件一起放入包中。只需将“%{myAlias}”更改为“b”即可成功验证。
所以,我知道访问者验证器可以工作,但不能使用 OGNL 表达式。
任何想法为什么?谷歌根本没有帮助。似乎没有人尝试过这个。