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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章