OGNL表達式

GNL中$號的使用
1..在國際化資源文件中,引用OGNL表達式
2..在struts.xml文件中,引用OGNL表達式
 
OGNL中%號的使用
1..使用%{}可以取出保存在值堆棧中的Action對象,直接調用它的方法
2..如果Action繼承了ActionSupport,那麼在頁面標籤中可以使用%{getText('key')}獲取國際化信息
 
OGNL中#號的使用
OGNL中的#號可以取出堆棧上下文中存放的對象
  
attr用於按request>>session>>application順序訪問其屬性
 
#attr.userName相當於按順序從三個範圍讀取userName屬性直到找到爲止
 
request
 
包含當前HttpServletRequest的屬性的Map
 
#request.userName相當於request.getAttribute("userName")
 
session
 
包含當前HttpSession的屬性的Map
 
#session.userName相當於session.getAttribute("userName")
 
application
 
包含當前應用的ServletContext的屬性的Map
 
#application.userName相當於application.getAttribute("userName")
 
parameters
 
包含當前HTTP請求參數的Map
 
#parameters.id[0]相當於request.getParameter("id")
  
 
利用投影獲取屬性
利用投影獲取List中對象的username屬性時,其中{}表示的是一個集合
stus.{username}就表示將suts中所有的username屬性取出組成一個新的列表
 
利用選擇獲取屬性
 
OGNL表達式是很靈活的,可以同時使用選擇技術與投影技術獲取屬性
使用選擇技術時,#this代表當前元素,問號?是把所有滿足條件的元素都取出來。
上箭頭^是開始的意思,即取符合條件的數據索引中第一條數據,所以stus.{^#this.grade>=60}.{username}輸出的是[張三]
注意,此時輸出文本中包含中括號,這表示它是一個列表。
而stus.{?#this.grade>=60}.{username}[0]輸出的是張三,是字符串,二者是不同的。
美元符號$是結束的意思,即取符合條件的數據索引中最後一條數據,所以stus.{$#this.grade>=60}.{username}輸出的是[王五]
這三個符號:問號、上箭頭、美元符所返回的都是List
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章