package test;
import static org.junit.Assert.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import model.Role;
import model.User;
import model.info;
import ognl.Ognl;
import ognl.OgnlException;
import org.junit.Test;
public class ognltest {
public void test() {
//单一实体类
info in=new info("介绍", 5);
User user=new User(1,"周五","Sunday",in);
try {
//第二个参数是root
System.out.println(Ognl.getValue("username",user));
System.out.println(Ognl.getValue("infor.memo",user));
} catch (OgnlException e) {
e.printStackTrace();
}
}
/**
* getValue有三种参数,第一个是字符名若是root里的直接寻找,否则前面加#,可以直接#root取得字符
* 第二个是非root对象,寻找此空间的字符需加#号键,可以省略
* 第三个是root对象
*/
public void test0(){
//Map集合多个实体类
Map<String,Object> multi=new HashMap<String,Object>();
info in=new info("备注", 6);
User user=new User(2,"周六","Monday",in);
Role role=new Role(110,"警察");
multi.put("u", user);
multi.put("r", role);
try {
//此表达式在root下找,user是root
System.out.println(Ognl.getValue("username",user));
//在Map中需要加#号寻找,否则找寻user.u.infor.memo
System.out.println(Ognl.getValue("#u.infor.memo",multi,user));
//直接用root寻找
System.out.println(Ognl.getValue("#root.username",multi,user));
} catch (OgnlException e) {
e.printStackTrace();
}
}
/**
* 取得list中元素,使用#root[index].xx取值
* 可以调用元素方法,#root[index].method(),根元素可以省略#root
*/
@Test
public void test2(){
List<Role> roles=new ArrayList<Role>();
roles.add(new Role(1,"你"));
roles.add(new Role(2,"我"));
roles.add(new Role(1,"他"));
try {
System.out.println(Ognl.getValue("#root[1].name",roles));
System.out.println(Ognl.getValue("#root[1].testmethod(110,1)",roles));
//调用list中size()方法
System.out.println(Ognl.getValue("size()",roles));
System.out.println(Ognl.getValue("testmethod(110,1)",new Role(1,"你")));
} catch (OgnlException e) {
e.printStackTrace();
}
}
}
Struts2 Ognl简单测试
最新推荐文章于 2020-04-02 15:46:34 发布