1

我在使用 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 表达式。

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

4

0 回答 0