在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 "?";
}