具有OGNL表达式上下文的Struts 2 Visitor Validator

时间:2012-07-31 15:20:00

标签: validation struts2

我在Struts 2中使用“访问者”验证器时遇到问题。如果我对“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”方法(它成功完成!),它返回一个String。

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表达式。

任何想法为什么?谷歌一直没有任何帮助。似乎没人试过这个。

0 个答案:

没有答案