OGNL中$號的使用 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