在GenericTokenParser解析式时会把${property}和#{property}中的内容解析出来,并用TokenHandler去处理。
1、BindingTokenParser处理${}方式:
public String handleToken(String content) {
Object parameter = context.getBindings().get("_parameter");
if (parameter == null) {
context.getBindings().put(“value”, null);
} else if (SimpleTypeRegistry.isSimpleType(parameter.getClass())) {
context.getBindings().put(“value”, parameter);
}
Object value = OgnlCache.getValue(content, context.getBindings());
String srtValue = (value == null ? “” : String.valueOf(value)); // issue #274 return “” instead of “null”
checkInjection(srtValue);
return srtValue;
}
2、ParameterMappingTokenHandler处理#{}:
public String handleToken(String content) {
parameterMappings.add(buildParameterMapping(content));
return “?”;
}