mybatis解析${}和#{}符号

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


版权声明:本文为q11184原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。