国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

el ognl jstl標簽 struts標簽

2019-11-11 03:37:16
字體:
來源:轉載
供稿:網友

el是表達式語言,ognl也是表達式語言的一種,兩者都是用來訪問對象的屬性的。。 ognl的名字的來頭是—-圖對象語言,這個不重要

el在jsp里面不用任何配置,直接就可以用,用法也很簡單,基本格式就是 ${屬性名字}默認是輸出pageScope范圍的屬性 可以指定屬性范圍

${pageScope.info}${requestScope.info}${sessionScope.info}${applicationScope.info}

除了訪問屬性,還可以接受參數

${param.參數名稱}接受一組參數${paramValues.參數名稱}

如果訪問的對象是集合,可以通過下標[]訪問,也可以通過.符號訪問

list集合 ${info[0]}或者${info.0}map集合 ${info["key"]}或者${ info.key}

再來說ognl表達式 相對EL表達式,它提供了平時我們需要的一些功能,如: * 支持對象方法調用,如xxx.sayHello(); * 支持類靜態方法調用和值訪問,表達式的格式為@[類全名(包括包路徑)]@[方法名 | 值名],例如: @java.lang.String@format(‘foo%s’, ‘bar’)或@cn.itcast.Constant@APP_NAME; * 操作集合對象。 * Ognl 有一個上下文(Context)概念,說白了上下文就是一個MAP結構,它實現了java.utils.Map接口,在Struts2中上下文(Context)的實現為ActionContext,下面是上下文(Context)的結構示意圖

這里寫圖片描述

ognl context 就是 action context

這里寫圖片描述

當Struts2接受一個請求時,會迅速創建ActionContext,ValueStack,action 。然后把action存放進ValueStack,所以action的實例變量可以被OGNL訪問

<s:PRoperty value="name"/>

ognl表達式要和struts標簽配合使用,這里的”name”可以就可以輸入ognl表達式

由于ValueStack(值棧)是Struts2中OGNL的根對象,如果用戶需要訪問值棧中的對象,在JSP頁面可以直接通過下面的EL表達式訪問ValueStack(值棧)中對象的屬性: ${foo} //獲得值棧中某個對象的foo屬性

如果訪問其他Context中的對象,由于他們不是根對象,所以在訪問時,需要添加#前綴。 application對象:用于訪問ServletContext,例如#application.userName或者#application[‘userName’],相當于調用ServletContext的getAttribute(“username”)。

session對象:用來訪問HttpSession,例如#session.userName或者#session[‘userName’],相當于調用session.getAttribute(“userName”)。

request對象:用來訪問HttpServletRequest屬性(attribute)的Map,例如#request.userName或者#request[‘userName’],相當于調用request.getAttribute(“userName”)。

parameters對象:用于訪問HTTP的請求參數,例如#parameters.userName或者#parameters[‘userName’],相當于調用request.getParameter(“username”)。

attr對象:用于按page->request->session->application順序訪問其屬性。


采用OGNL表達式創建List/Map集合對象

如果需要一個集合元素的時候(例如List對象或者Map對象),可以使用OGNL中同集合相關的表達式。 使用如下代碼直接生成一個List對象: 這里寫圖片描述

Set標簽用于將某個值放入指定范圍。 scope:指定變量被放置的范圍,該屬性可以接受application、session、request、page或action。如果沒有設置該屬性,則默認放置在OGNL Context中。 value:賦給變量的值.如果沒有設置該屬性,則將ValueStack棧頂的值賦給變量。


采用OGNL表達式判斷對象是否存在于集合中,所以struts的判斷標簽還是很有用的,至于復雜的邏輯控制標簽,switch,while,for什么的,我就不想去記那些該死的標簽了,只要知道用判斷標簽,輸出標簽,表單標簽,就差不多了

對于集合類型,OGNL表達式可以使用in和notin兩個元素符號。其中,in表達式用來判斷某個元素是否在指定的集合對象中;not in判斷某個元素是否不在指定的集合對象中,如下所示。

這里寫圖片描述

OGNL表達式的投影功能

除了in和notin之外,OGNL還允許使用某個規則獲得集合對象的子集,常用的有以下3個相關操作符。 ?:獲得所有符合邏輯的元素。 ^:獲得符合邏輯的第一個元素。 $:獲得符合邏輯的最后一個元素。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 信阳市| 万载县| 天水市| 靖远县| 茌平县| 龙胜| 四子王旗| 柳江县| 彝良县| 射阳县| 金湖县| 浮梁县| 勃利县| 江口县| 宁陕县| 华池县| 遂溪县| 扶余县| 阿克陶县| 尼勒克县| 金溪县| 马山县| 荥经县| 昌黎县| 黔江区| 元江| 通州市| 新密市| 凌云县| 炉霍县| 横山县| 旺苍县| 华蓥市| 乌兰县| 玉龙| 贵定县| 韶山市| 通化县| 澄城县| 青神县| 临潭县|