您的位置:首页 > 其它

ognl表达式中判断字符串常量的注意事项

2015-04-22 16:24 1366 查看
// OGNL与单个字符常量做等号判断,会被转成数值型

Map<String, Object> context = new HashMap<String, Object>();
context.put("id", "1");
context.put("name", "z");
context.put("sex", "man");

System.out.println(context);

// 单个字符的数字型字符串
System.out.println(getValue("id == '1'", context));// false
System.out.println(getValue("id == '1'.toString()", context));// true

// 单个字符的非数字型字符串
try {
System.out.println(getValue("name == 'z'", context));
} catch (Exception e) {
// 'z'不能被转成数值型,此处会抛出NumberFormatException
e.printStackTrace();
}
System.out.println(getValue("name == \"z\"", context));// true
System.out.println(getValue("name == 'z'.toString()", context));// true

// 不是单个字符的字符串
System.out.println(getValue("sex == 'man'", context));// true
System.out.println(getValue("sex == \"man\"", context));// true
System.out.println(getValue("sex == 'man'.toString()", context));// true
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐