導航:首頁 > 編程語言 > 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表達式相關的資料

熱點內容
暗黑綠色裝備升級 瀏覽:261
到哪裡學編程啊 瀏覽:752
電腦粉碎文件和卸載 瀏覽:365
怎麼查看共享電腦所有文件 瀏覽:617
創意編程社區賬號在哪裡 瀏覽:377
好用的壓縮文件 瀏覽:538
360下載的補丁包在哪個文件夾 瀏覽:988
微信54安卓版本官網 瀏覽:698
為什麼cnc編程找工作難 瀏覽:777
sql資料庫埠不通 瀏覽:361
javaword轉swf 瀏覽:174
cms數據更新是什麼 瀏覽:39
電腦保密櫃在文件里怎麼找不到了 瀏覽:225
nodejs前端後端 瀏覽:129
程序俠後台多少 瀏覽:32
mysqle執行sql文件在哪裡 瀏覽:466
資料庫iostat1 瀏覽:986
java圖片工具包 瀏覽:159
ps文件損壞出現不兼容情況 瀏覽:942
為什麼iphone耗wifi 瀏覽:495

友情鏈接