考虑发布的数据名称为ex 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
。
答案 0 :(得分:1)
在OGNL'。'具有特殊含义,它表示属性引用。因此,如果您有<button type="button" st-reset-search>Clear Filters</button>
引用的对象并且它具有属性fromAccount
,那么您可以通过accountNo
访问此属性。它还用于投影,选择,子表达式求值和方法调用。你无法逃避这个角色,因为OGNL没有逃避操作符。但是你可以使用这个simbol'。'作为char字面。 OGNL还支持所有角色转义:
字符文字,也与Java一样:由单引号分隔,也包含完整的转义集;
OGNL按名称引用对象,如Java,名称为alphanumeric。