麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

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

el ognl jstl標簽 struts標簽

2019-11-11 04:49:50
字體:
來源:轉載
供稿:網友

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個相關操作符。 ?:獲得所有符合邏輯的元素。 ^:獲得符合邏輯的第一個元素。 $:獲得符合邏輯的最后一個元素。


上一篇:上機練習1-2

下一篇:2.6

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 精品久久久久久亚洲精品 | 国产又粗又爽又深的免费视频 | 久久久免费观看完整版 | 亚洲欧美国产高清 | 欧美日韩电影在线 | 特一级黄色毛片 | 亚洲欧美一区二区三区在线观看 | 一区二区三区欧洲 | 正在播放91 | 午夜精品久久久久久久99热浪潮 | 欧美综合在线观看 | 欧美精品一二三区 | 亚洲第一页综合 | 斗罗破苍穹在线观看免费完整观看 | 国产精品成人av片免费看最爱 | 精品亚洲一| 日日鲁一鲁视频 | hd极品free性xxx一护士 | 免费国产一级淫片 | 日韩视频―中文字幕 | 久久精品视频亚洲 | 九九热精| 一级电影在线免费观看 | 亚洲资源在线播放 | 精品一区二区三区中文字幕老牛 | 日本精品视频一区二区三区四区 | 国产免费一区二区三区 | 蜜桃视频在线免费播放 | 成人在线免费视频播放 | 色欲香天天天综合网站 | 成人视屏在线 | sese在线视频| 成人在线激情视频 | 亚洲特黄妇女高潮 | 国产精品一区二区三区在线播放 | 日本网站在线看 | av影院在线播放 | 性少妇videosexfreexx入片 | 免费一级特黄欧美大片勹久久网 | 色女生影院 | 圆产精品久久久久久久久久久 |