java el ognl_EL和OGNL表達式的區分

OGNL是通常要結合Struts 2的標志一起使用,如 struts頁面中不能單獨使用,el可以單獨使用?${sessionScope.username}

頁面取值區別:

名稱

servlet

ognl??????????????????????????????????????????????????????????? ?????????????? el

parameters

request.getParameter("username")

#username?????????????????????????????????????????????${username}

request

request.getAttribute("userName")

#request.userName?????????????????????????????? ?${requestScope.username}

session

session.getAttribute("userName")

#session.userName???????????????????????????????${sessionScope.username}

application

application.getAttribute("userName")

#application.userName????????????????????????? ${applicationScope.username}

attr

用于按request > session > application順序訪問其屬性(attribute)

#attr.userName相當于按順序在以上三個范圍(scope)內讀取userName屬性,直到找到為

2.ognl講解

OGNL是Struts 2默認的表達式語言。是Object Graphic Navigation Language(對象圖導航語言)的縮寫,它是一個開源項目。

1.#符號的用途一般有三種。

1)訪問非根對象屬性,例如示例中的#session.msg表達式,由于Struts 2中值棧被視為根對象,所以訪問其他非根對象時,需要加#前綴。實際上,#相當于ActionContext.getContext();;#session.msg表達式相當于ActionContext.getContext().getSession(). getAttribute(”msg”) 。

2)用于過濾和投影(projecting)集合,如示例中的persons.{?#this.age>20}。

3)用來構造Map,例如示例中的#{’foo1′:’bar1′, ’foo2′:’bar2′}。

2.%符號

%符號的用途是在標志的屬性為字符串類型時,計算OGNL表達式的值。如下面的代碼所示:

構造Map

The?value?of?key?“foo1″?is?

不使用%:

使用%:

The?value?of?key?"foo1"?is?bar1

不使用%:#foobar['foo1']

使用%:bar1

3.$符號

$符號主要有兩個方面的用途。

在國際化資源文件中,引用OGNL表達式,例如國際化資源文件中的代碼:reg.agerange=國際化資源信息:年齡必須在${min}同${max}之間。

在Struts 2框架的配置文件中引用OGNL表達式,例如下面的代碼片斷所示:

10

100

BAction-test校驗:數字必須為${min}為${max}之間!

--------理解二

兩者都是在服務器端執行的,JSP轉化為servlet并編譯為java文件,其中會把EL,OGNL,等解釋出來,并返回給客戶端。

OGNL表達式依賴于struts2標簽,必須結合struts2標簽使用,如:

但是查看信息這樣是不行的,因為標簽不是struts2標簽

當然可以把它改為查看信息這樣就行.

說明:中%{ }作用是告訴解釋器,這之間的代碼為OGNL表達式,這很有用。

EL表達式形式為${內容},如${sessionScope.user.name}.? 不能用在java表達式之內,因為兩者是兩種不同的表達式。

EL表達式不能用在struts2標簽里。

EL表達式能用在內部文件的js里(jsp被解釋時,內部文件的js代碼也被解釋,然后發送到客戶端,而外部js文件是在客戶端執行的,所以EL表達式不能用在外部js文件里)

如:alert("${sessionScope.user.name}"), 加上雙引號或單引號。

說明:js文件里不能使用OGNL表達式(因為它只能結合struts2標簽使用)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/529844.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/529844.shtml
英文地址,請注明出處:http://en.pswp.cn/news/529844.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

java query包,有沒有Java的http_build_query函數的Java等價物?

I have a Map with my data and want to build a query string with it, just like I would with http_build_query on PHP. Im not sure if this code is the best implementation of it or if Im forgetting something?public String toQueryString(Map, ?> data) throw…

JAVA不同類型數組重載_java學習筆記--java中的方法與數組

方法完成特定功能的代碼塊方法的格式修飾符 返回值類型 方法名(參數類型 參數名1,參數類型 參數名2...){//方法體return 返回值;}方法的調用方式通過方法名調用方法根據形式參數列表將實際參數傳遞給方法定義方法的注意事項1.方法必須定義在類中2.方法與…

鏈表每k個反轉 java_K 個一組翻轉鏈表

leetcode第25題(困難)問題描述給你一個鏈表,每 k 個節點一組進行翻轉,請你返回翻轉后的鏈表。k 是一個正整數,它的值小于或等于鏈表的長度。如果節點總數不是 k 的整數倍,那么請將最后剩余的節點保持原有順序。示例:給…

java里面的scanner怎么關閉_作業。scanner怎么不能關閉

package try_catch; import java.util.Scanner; public class TryCatchPractice2 {//在類開始聲明,則其他方法都能調用 Scanner in=new Scanner(System.in); NoBookException NoB=new NoBookException(); String[] books={"語文","數學","英語"…

java ddd 領域事件_Cribbb基于DDD/Domain Event領域事件的開源PHP通知系統

Cribbb是一個使用DDD聚合根和領域事件Domain Events概念開發的PHP開源通知框架:cribbb/cribbb GitHub幾乎所有Web應用都有一個通知提醒系統,這些通知系統都有共有的屬性和功能:一個發往用戶的消息管道Cribbb通知系統扮演一種消息管道&#x…

java 自帶導出excel_4.java項目頁面導出excel功能

用的是SSM框架,字段根據自己的業務需求改1.前臺頁面導出/*導出按鈕提交*/function downloadExcel(){$("#dynamicDownload").submit();}2.后臺相關代碼import org.apache.poi.hssf.usermodel.HSSFCellStyle;import org.apache.poi.hssf.usermodel.HSSFFont;import org…

php 運行外部程序_PHP在linux上執行外部命令的方法

目錄:一、PHP中調用外部命令介紹二、關于安全問題三、關于超時問題四、關于PHP運行linux環境中命令出現的問題一、PHP中調用外部命令介紹在PHP中調用外部命令,可以用,1>調用專門函數、2>反引號、3>popen()函數打開進程,三…

php直播pk規則,直播源碼中的主播PK功能是如何實現的

直播行業為贏得更廣泛用戶的青睞,自然要不斷開發更有趣的玩法、模式,在直播源碼中加入主播PK功能就是一種提高直播互動性、激發用戶好勝心的方法,一方面這種方法可以吸引更多用戶觀看,增加主播的曝光率,另一方面它又能…

php中手機端ajax上拉加載更多,jQuery手機網頁上拉加載更多

手機網頁和PC網頁都可以使用的上拉加載更多內容,其中LoadingDataFn自己改為ajax加載就可以了var page 1, //分頁碼off_on false, //分頁開關(滾動加載方法 1 中用的)timers null; //定時器(滾動加載方法 2 中用的)//加載數據var LoadingDataFn function() {var …

phpcms上傳php,phpcms如何上傳視頻

phpcms如何上傳視頻?phpcms-v9上傳視頻文件時的解決方案1.不建議直接在后臺上傳視頻文件,因為視頻文件一般都比較大,直接上傳影響帶寬;可先通過ftp工具將視頻文件上傳到指定目錄,然后再后臺引入視頻文件的地址即可2.如…

護衛神怎么重啟php,護衛神·主機大師如何開啟php_opcache_護衛神

護衛神主機大師支持5.5至7.3這幾個版本開啟php_opcache擴展。一,先打開護衛神主機大師面板-常用操作-打開軟件目錄二,打開phpweb目錄,找到要開啟opcache的php版本,比如我這里要在php5.5中開啟,進入php55目錄&#xff0…

php 首頁加背景圖片,如何在頁首添加一張背景圖片

Navy主題如何在頁首添加一張圖片可以http://www.ikk.me/這樣子頂部添加背景圖片他的代碼是【點擊查看】回復內容:Navy主題如何在頁首添加一張圖片可以http://www.ikk.me/這樣子頂部添加背景圖片他的代碼是【點擊查看】看了下代碼,就是給 section 加了個 …

php裝箱,php兌現裝箱算法

php實現裝箱算法貪婪法是一種不追求最優解,只希望得到較為滿意解的方法。貪婪法一般可以快速得到滿意的解,因為它省去了為找最優解要窮盡所有可能而必須耗費的大量時間。貪婪法常以當前情況為基礎作最優選擇,而不考慮各種可能的整體情況&…

flash as3與后臺php交互用戶注冊例子,as3與PHP后臺交互2

怎么樣,是不是也很方便的實現了as3和后臺的數據傳輸?恩,現在我們的程序可以雙向交互數據了,但這只是一些簡單的數據,如果你要傳輸帶有結構的數據,(熟悉as2的人都知道loadVars可以自動解析下載數據的結構)&a…

java 去除 quot,JAVA去除web頁面傳入后臺的特殊字符工具類 | 學步園

package www.tmzskj.com.utils;import java.util.regex.Matcher;import java.util.regex.Pattern;import org.junit.Test;/*** 功能 過濾特殊字符,清除掉所有特殊字符* regEx 為要清除的字符* author admin**/public class StringFilterTest {public static String …

matlab傅里葉工具箱,matlab通信工具箱.pdf

matlab通信工具箱randerr 產生隨機誤碼圖樣randint 產生均勻分布的隨機整數信號源 randsrc 用預定義的字母表產生隨機矩陣wgn 產生高斯噪聲commsrc.pattern 結構模式生成句柄berawgn 非編碼的AWGN 信道的誤比特率bercoding 編碼的AWGN 信道的誤比特率berconfint 蒙特卡羅仿真下…

java迭代器cas,java提高篇(三十)-Iterator - Java 技術驛站-Java 技術驛站

迭代對于我們搞Java的來說絕對不陌生。我們常常使用JDK提供的迭代接口進行Java集合的迭代。Iterator iterator list.iterator();while(iterator.hasNext()){String string iterator.next();//do something}迭代其實我們可以簡單地理解為遍歷,是一個標準化遍歷各類…

mysqldb mysql config,安裝mysqldb python界面時找不到mysql_config

mySQLdb是一個用于mysql的python界面,但它不是mysql本身。 顯然mySQLdb需要命令“mysql_config”,所以你需要先安裝。你能否確認你是否通過從shell運行“mysql”來安裝mysql本身? 這應該給你一個“mysql:command not found”以外的…

kfcm算法matlab實現,KFCM算法分析

function [center, U, obj_fcn] KFCMClust(data, cluster_n, kernel_b,options)% FCMClust.m 采用模糊C均值對數據集data聚為cluster_n類%% 用法:% 1. [center,U,obj_fcn] KFCMClust(Data,N_cluster,kernel_b,options);% 2. [center,U,obj_fcn] KFCMClus…

matlab中的terminator模塊,2.2 Ground 及 Terminator模塊

課時:117節課時長:20.1小時課級:中級提高simulink是matlab中的一種可視化仿真工具, 是一種基于matlab的框圖設計環境,是實現動態系統建模、仿真和分析的一個軟件包,被廣泛應用于線性系統、非線性系統、數字…