考虑发布的数据名称中带有点,例如:
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
。
在 OGNL '.'有特殊含义,表示属性引用。因此,如果您有一个由
fromAccount
引用的对象,并且它有一个属性 accountNo
,那么您可以通过 fromAccount.accountNo
访问该属性。它还可用于投影、选择、子表达式求值和方法调用。你无法转义这个字符,因为 OGNL 没有转义运算符。但是您可以使用这个符号“.”作为 char 文字。 OGNL 还支持所有字符转义:
字符文字,也如 Java 中一样:用单引号分隔,也带有完整的转义集;
OGNL 通过名称引用对象,就像在 Java 中一样,在 Java 中名称是 字母数字。