Struts 2 归档名称中包含点

问题描述 投票:0回答:1

考虑发布的数据名称中带有点,例如:

fromAccount.accountNo
。如果我们编写一个自定义的
validator
就像

@CustomValidator(type = "AccountBelongsToUserValidator", fieldName = "fromAccount.accountNo") 

并写下

AccountBelongsToUserValidator
,如下所示:

  public void validate(Object object) throws ValidationException {

    String fieldName = getFieldName();
    Object value = this.getFieldValue(fieldName, object);

value
将是
null

Struts/OGNL 是否可以读取名称中带有点的字段。

我使用

formAccount\\.accountNo
尝试转义点,但没有帮助?!

相对动作不是

ModelDriven

struts2 ognl
1个回答
1
投票

在 OGNL '.'有特殊含义,表示属性引用。因此,如果您有一个由

fromAccount
引用的对象,并且它有一个属性
accountNo
,那么您可以通过
fromAccount.accountNo
访问该属性。它还可用于投影、选择、子表达式求值和方法调用。你无法转义这个字符,因为 OGNL 没有转义运算符。但是您可以使用这个符号“.”作为 char 文字。 OGNL 还支持所有字符转义:

字符文字,也如 Java 中一样:用单引号分隔,也带有完整的转义集;

OGNL 通过名称引用对象,就像在 Java 中一样,在 Java 中名称是 字母数字

© www.soinside.com 2019 - 2024. All rights reserved.