嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 2 元微信扫码支付:2 元
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
ognl工具类
* pom文件
* OgnlUtil工具类
* OgnlUtil工具类使用
pom文件<!--map value值提取-->
<dependency>
<groupId>ognl</groupId>
<artifactId>ognl</artifactId>
<!--不要使用最新版本3.2.x的ognl,会出现MemberAccess异常-->
<version>3.1.2</version>
</dependency>
OgnlUtil工具类public class OgnlUtil {
public static String getString(String ognl, Map root) {
try {
Object value = Ognl.getValue(ognl, root);
if (null == value) {
return "";
}
return value.toString();
} catch (OgnlException e) {
throw new RuntimeException(e);
}
}
//Number是所有数字的父类
public static Number getNumber(String ognl, Map root) {
Number result = null;
try {
Object val = Ognl.getValue(ognl, root);
if (val != null) {
if (val instanceof Number) {
result = (Number) val;
} else if (val instanceof String) {
result = new BigDecimal((String) val);
}
}
} catch (OgnlException e) {
throw new RuntimeException(e);
}
return result;
}
//获取Boolean类型
public static Boolean getBoolean(String ognl, Map root) {
Boolean result = null;
try {
Object val = Ognl.getValue(ognl, root);
if (val != null) {
if (val instanceof Boolean) {
result = (Boolean) val;
} else if (val instanceof String) {
result = ((String) val).equalsIgnoreCase("true") ? true : false;
} else if (val instanceof Number) {
if (((Number) val).intValue() == 1) {
result = true;
} else {
result = false;
}
}
}
} catch (OgnlException e) {
throw new RuntimeException(e);
}
return result;
}
/**
* 获取List集合,里面每一个元素都是Map
*
* @param ognl
* @param root
* @return
*/
public static List<Map<String, Object>> getListMap(String ognl, Map root) {
List<Map<String, Object>> list = null;
try {
list = (List) Ognl.getValue(ognl, root);
if (list == null) {
list = new ArrayList();
}
} catch (OgnlException e) {
throw new RuntimeException(e);
}
return list;
}
/**
* 获取list集合,里面每一个元素都是String
*
* @param ognl
* @param root
* @return
*/
public static List<String> getListString(String ognl, Map root) {
List<String> list = null;
try {
list = (List) Ognl.getValue(ognl, root);
if (list == null) {
list = new ArrayList();
}
} catch (OgnlException e) {
throw new RuntimeException(e);
}
return list;
}
public static Map<String, Object> getMap(String ognl, Map root) {
Map<String, Object> map;
try {
Object object = Ognl.getValue(ognl, root);
if (null == object) {
return new HashMap<>(0);
}
return (Map) object;
} catch (OgnlException e) {
throw new RuntimeException(e);
}
}
}
OgnlUtil工具类使用public static void main(String[] args) {
Map<String,Object> map = new HashMap<>();
map.put("name","guohao");
map.put("user",new User("guohao"));
String name = getString("name", map);
// name:guohao
System.out.println("name:" name);
String userName = getString("user.userName", map);
// user#UserName: guohao
System.out.println("user#UserName: " userName);
}
static class User {
private String userName;
public User(String userName) {
this.userName = userName;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
}