1、Ognl簡介
OGNL的全稱是Object Graph Navigation Language(對象圖導航語言),它是一種強大的表達式語言。
它存在着兩種對象,一種爲根對象、一種爲非根對象。根對象只有一個,而非根對象可以有多個。這裏就有一個表達式:
Ognl的上下文(OgnlContext)= 根對象(1)+非根對象(N)
2、存值與取值
第一步肯定是導入ognl的jar包。
根對象與非根對象的區別: 1、根對象只有一個;非根對象有多個
2、根對象取值,直接根據屬性名取;非根對象取值時,需要在前面加入’#‘ 號,如下:
public static void main(String[] args) {
// 申明一個Ognl的上下文
OgnlContext oc=new OgnlContext();
// 向上下文內添加非根對象
oc.put("s1", new Student("1", "張三"));
oc.put("s2", new Student("2", "張三2"));
oc.put("s3", new Student("3", "張三3"));
Teacher teacher = new Teacher("1","小李");
// 將teacher設置爲非根對象,如果在設置了根對象以後,再爲根對象設置無效,會以之前第一次設置的爲根對象
oc.setRoot(teacher);
//取值.
String tname = (String)Ognl.getValue("tname", oc, teacher);
Student stu = (Student)Ognl.getValue("#s1", oc, teacher);
String s1sname = (String)Ognl.getValue("#s1.sname", oc, teacher);
System.out.println("tname: "+tname+" stu: "+stu+" s1.sname: "+s1sname);