struts2—OGNL
阿新 • • 發佈:2018-06-11
賦值 image height wid 一個 png ring asc HR
1.OGNL表達式
1.ONGL是對象視圖導航語言 ${user.name}這種寫法就是對象視圖導航
2.OGNL的jar包是包含在Struts2基礎包中
3.OGNL的存儲方式
4.OGNL表達式使用方式
public void ognlBasc() throws OgnlException { OgnlContext oc = new OgnlContext(); User user = new User("zjj","123456"); oc.setRoot(user); Map<String , User> map = newHashMap<>(); map.put("user1", new User("xjh","123456")); map.put("user2", new User("tjl","3216465")); oc.setValues(map); //獲得root裏的內容 String result1 = (String) Ognl.getValue("name", oc, oc.getRoot()); //獲得map裏的內容 用#標識是獲得是map集合的內容咯不能 String result2 = (String) Ognl.getValue("#user1.name", oc, oc.getRoot());//調用方法獲取字符串長度 Integer result3 = (Integer) Ognl.getValue("#user1.name.length()", oc, oc.getRoot()); //為屬性賦值 String result4 = (String) Ognl.getValue("#user1.name=‘xjh-zjj‘,#user1.name", oc, oc.getRoot()); //調用靜態方法/@全類名@方法名 Double result5 = (Double) Ognl.getValue("@@pow(2,3)", oc, oc.getRoot()); Double result6= (Double) Ognl.getValue("@@PI", oc, oc.getRoot()); //ognl創建對象-list|map //1.創建list對象 String result7 =(String) Ognl.getValue("{‘zjj‘,‘xjh‘}[0]", oc, oc.getRoot()); //2.創建map集合 String result8 =(String)Ognl.getValue("#{‘user‘:‘123‘,‘age‘:‘123‘},#user",oc,oc.getRoot()); System.out.println(result7); }
2.OGNL與Struts2的結合
OGNL中的OGNLContext------------>valueStack值棧
值棧(valueStack)由兩部分構成
一部分叫做Root,放置的是一個棧
一個部分叫做Context
棧是先進後出的
3.OGNL標簽
<!-- 取map的兩種方式 --> <s:property value="#map[‘user1‘].password"/><br/> <s:property value="#map.user1.name"/><br> <hr> <!-- 循環過濾功能 --> <s:iterator value="#map.{?#this.name.length()==3}"> <s:property value="name"/><br/> </s:iterator> <hr>
struts2—OGNL