導航:首頁 > 編程語言 > jsp指令使用ognl表達式

jsp指令使用ognl表達式

發布時間:2024-07-16 15:08:30

1. ognl和el表達式的區別

ognl和el表達式的區別
el 和ognl都是表達是語言,但語法是不一樣的,所謂表達式語言,就是輸入一串表達式,解釋器幫你求值。jstl是一套標簽庫,說白了是一套可以用在jsp頁面的標簽。jstl和el都屬於jsr的一部分。ognl則是社區一套表達式語言,最初用於webwork。
這段就是帶參數的url 相當於 hello action的URL後面加上 ?userName=Bruce+Phillips${helloLink}是EL表達式 <s:url action="hello" var="helloLink">
<s:param name="userName">Bruce Phillips</s:param>
</s:url>

實際上這段的意思是將帶參數的url字元串放到request屬性中,再通過EL把它取出來${helloLink}可以換成${requestScope.helloLink}

2. Struts2 2.5 用ognl表達式從action裡面取值,顯示在jsp頁面,為什麼不能根據性別取出對象呢看下圖

struts2中使用的OGNL表達式在拿action中的值的時候無論如何都取不到。

UserAction.java 這個類查出了一個「lists」,也就是我在jsp頁面中要取的值。

[java]view plain

3. jsp裡面有個很像EL表達式的#{ },是什麼表達式

OGNL表達式
構造Map,如#{'foo1':'bar1', 'foo2':'bar2'}。
支持容器的構造的表達式:
例如:{"green", "red", "blue"}構造一個List,專#{"key1" : "value1", "key2" : "value2", "key3" : "value3"}構造一個Map
OGNL是Object-Graph Navigation Language的縮屬寫,它是一種功能強大的表達式語言,通過它簡單一致的表達式語法,可以存取對象的任意屬性,調用對象的方法,遍歷整個對象的結構圖,實現欄位類型轉化等功能。它使用相同的表達式去存取對象的屬性。

4. jsp中如何生成HTML中的標簽啊比如,我想寫個for循環,在頁面上生成N個<td>...</td>的單元

通過<%%>內寫入抄java代碼即可實現,襲不過真正開發一般不這樣做,要使用EL或OGNL表達式<table> <tr> <%for(int i = 0; i < n; i++){ %> <td> </td> <% } %> </tr>
</table></p></p>

5. struts2 jsp如何獲取action值

現在jsp頁面頭部引入struts2標簽庫
<%@ taglib prefix="s" uri="/struts-tags"%>

然後再需要的地方使用
<s:property value="OGNL表達式"/>

每次請求action轉發回來後,當回前頁答面會有一個
valueStack,action里的全部信息都保存在裡面,比如你action里有個欄位username(提供的有get方法)
則你在<s:property value="username"/>就能直接取到值。
如果是對象ognl還可以支持導航<s:property value="user.username"/>
依次類推。

同時當前頁面還保存的有ActionContext(不知道怎麼翻譯...),跟valueStack一樣,也可以直接取值,但是前面要加個#號以區別。
request、application對象都在actionContext裡面,
可以這么取requst里的值
<s:property value="#request.username"/>等

6. jsp頁面根據資料庫里查詢的值,顯示不同的div。

您好,很高興為您解答,首先請你提供您所使用的框架技術,包括哪些,如果沒有使用框架,我給你提供最簡單原始的如下思路:

拿簡單的 servlet 來說:

當在頁面做 input 提交時,用戶名已經被提交到後台,當然,我們的目的是獲取work_order值,接下來控制頁面轉發回你提交的 jsp,記住轉發與重定向的區別,這里我不做過多闡述,接下來就是jsp 頁面的操作了,您可以使用腳本語言<%...%>,亦可以使用 jstl 表達式,當然,如果使用了 struts2框架等,ognl 表達式是一個完美的選擇,提供的具體思路如下:

<jstl:if test="${requestScope.work_order}==a">顯示 a div</if> <jstl:elseif test="${requestScope.work_order}==b">顯示 b div</elseif> <jstl:else test="${requestScope.work_order}==a">顯示 a div</else>

當然${requestScope.work_order}表示從 request 范圍中請求work_order參數,就是你查詢出來的

閱讀全文

與jsp指令使用ognl表達式相關的資料

熱點內容
wifi網路延時大怎麼處理 瀏覽:345
雲辦公的原理是把傳統文件放哪裡 瀏覽:113
不屬於群防群治隊伍數據項有哪些 瀏覽:404
java樹向上找 瀏覽:241
資料庫查詢票價 瀏覽:503
word黑色下劃線怎麼去掉 瀏覽:879
學習編程怎麼學比較好 瀏覽:351
有什麼好看的地圖網站 瀏覽:593
oppo如何設置app黑名單 瀏覽:71
移動數據用了多少在哪裡顯示 瀏覽:549
excel表改變文件名顏色的方法 瀏覽:966
linuxshell二進制文件 瀏覽:36
什麼是網路道德問題產生的 瀏覽:836
c清除文件夾 瀏覽:407
租房貸款用什麼app 瀏覽:59
虛擬機oracle安裝教程 瀏覽:745
太原編程班哪裡有 瀏覽:544
壓縮文件怎麼找 瀏覽:586
wwwjshousecomcn 瀏覽:648
U盤文件路徑在哪 瀏覽:502

友情鏈接