1. 程式人生 > >OGNL表示式和Struts2標籤庫

OGNL表示式和Struts2標籤庫

一、OGNL表示式

    訪問Action的普通屬性:

<s:property value="msg"/>
    訪問Action中物件的普通屬性:
<s:property value="user.name"/>
    訪問Action中物件的普通方法:
<s:property value="user.info()"/>
    訪問Action中普通方法:
<s:property value="actionMethod()"/>

    訪問靜態方法:

<s:property value="@[email protected]()"/>
    訪問靜態屬性:

<s:property value="@[email protected]"/>
    訪問Math類的靜態方法:
<s:property value="@@max(2,3)"/>

    訪問Action中List|Set|Map:

<s:property value="userList"/>

    訪問容器的大小:

<s:property value="map.size()"/>
    訪問List中元素的某個屬性的集合(如所有user的name):
 <s:property value="userList.{name}"/>
    訪問List中的元素(物件)的某個屬性的集合中的特定值:

<s:property value="userList.{name}[1]"/>

    訪問List中的某個元素:

 <s:property value="userList[0]"/>
    訪問Map中所有的key:
<s:property value="map.keys"/>
    訪問Map中所有的value:
<s:property value="map.values"/>

    訪問指定的請求引數(注意:每一個請求引數都是一個數組):

<s:property value="#parameters.parm"/>  
二、Struts2標籤庫

    1、<s:property/>

        一般格式:

            <s:property value="" default="" escape=""/>

        屬性說明:

            value:預設當OGNL表達式處理,如果只要其當作字串需加單引號

            defaulut:預設值,值當作字串

            escape:表示對於得到的的字串是否解析為HTML,預設為true(不解析)

        使用示例:

	<!--獲取ValueStack中的物件-->
	<s:property value="user.name"/>
	
	<!--獲取StackContext中的物件-->
	<s:property value="#request.id"/>
    2、<s:if test=""/>、<s:elseif test=""/>和<s:else/>
	<!-- 數值比較 -->
	<s:if test="1<2"></s:if>
	
	<!-- 字串比較 -->
	<s:if test="'abc'=='abc'"></s:if>
	
	<!-- 獲取parameters中的值做比較(注: #parameters.parm=='parm'不能實現比較) -->
	<s:if test="#parameters.parm[0]=='parm'"></s:if>
	
	<!-- 獲取Action中的屬性做比較  -->
	<s:if test="user.name=='admin'"></s:if>
    3、<s:iterator/>

        一般格式:

            <s:iterator value="userList" var="u" status="stat" >

        屬性說明:

            value:OGNL表示式

            var:將遍歷的當前物件別名後放至StackContext中

            status:當前遍歷的資訊,通過其可取得當前遍歷的count(統計,始於1)、index(索引,始於0)、

                    even(是否偶數),odd(是否奇數)等

            補:另有begin(開始)、end(結束)、step(步長)等

        使用示例

	<!-- 遍歷普通List -->
 	<s:iterator value="list" status="stat" >
 		<s:property value="#stat.index"/> <!-- 當前索引 -->
 		<s:property value="#stat.odd"/> <!-- 是否為奇數次遍歷  -->
		<s:property /> <!-- 獲取當前物件 -->
	</s:iterator>
	
	<!-- 遍歷物件List -->
	<s:iterator value="userList" var="user" status="stat" >	
		<s:property value="#user.name" /> <!-- 獲取屬性 -->
		<s:property value="#user.name.toUpperCase()" /> <!-- 對屬性新增處理 -->
	</s:iterator>
	
	<!-- 遍歷Map -->
	<s:iterator value="map" status="stat" >
		<s:property /> <!-- 獲取當前key=value -->
		<s:property value="key" /> <!-- 獲取當前key -->
		<s:property value="value" /> <!-- 獲取當前value -->
	</s:iterator>
三、補充

    1、使用標籤庫,jsp需新增:

<%@ taglib prefix="s" uri="/struts-tags" %>

    2、要訪問靜態類,struts需配置:

<constant name="struts.ognl.allowStaticMethodAccess" value="true"/>

相關推薦

OGNL表示式Struts2標籤

一、OGNL表示式     訪問Action的普通屬性: <s:property value="msg"/>    訪問Action中物件的普通屬性:<s:property valu

OGNL表示式Struts2標籤

OGNL的全稱是Object Graph Navigation Language(物件圖形導航語言),它是一種強大的表示式語言,開發者可以通過簡單一致的表示式語法來讀取和設定java物件的屬性值,呼叫物件的方法,遍歷整個物件的結構。 操作物件! OGNL有一個上下文(Con

Struts2學習總結(3)--值棧,Ognl表示式,Struts標籤,國際化,資料校驗,攔截器

本文包括以下五個部分: 值棧。Ognl表示式。struts2標籤庫。國際化。表單資料校驗攔截器。struts2的執行過程。一、值棧 採用servlet和JSP開發時,servlet通過域物件儲存資料,在JSP頁面通過jstl標籤+el表示式獲取資料。 採用struts2和

09-【el表示式jstl標籤

el表示式和jstl標籤庫 一:el表示式:表示式語言,jsp頁面獲取資料比較簡單1、el表示式的語法(掌握)el表示式通常取值是獲取作用域物件中的屬性值:${屬性名}=>是el表示式的簡寫的形式跟jquery不一樣,$(選擇器)jquery物件,程式碼寫在js的指令碼塊中完整的書寫形式:  四個作用

JSTL標籤,EL表示式,OGNL表示式struts2標籤 彙總

          Apache Tomcat安裝JSTL 庫步驟如下: 下載jakarta-taglibs-standard-1.1.1.zip 包並解壓,將jakarta-taglibs-standard-1.1.1/lib/下的兩個jar檔案:standard.jar和jstl.jar檔案拷貝到/

JSPEl表示式JSTL標籤使用

JSP 指令是通知JSP引擎如何處理該JSP頁面,不是針對程式設計師的。 共有三種指令:    1.page指令:        1.1. language="java"  預設是java,只能寫ja

Struts標籤Ognl表示式、el表示式、jstl標籤這四者之間的關係各自作用

我之前雖然會用,但是一直分不清彼此之間有什麼區別,所以查詢資料,將它們進行整合區分,加深瞭解, 一 介紹 1.Struts2的作用    Struts2標籤庫提供了主題、模板支援,極大地簡化了檢視頁面的編寫,而且,struts2的主題、模板都提供了很好的擴充套件性。實現了更

struts2的day03,OGNL表示式值棧

OGNL:Object-Graph Navigation Language物件圖導航語言,是比EL強大很多倍的語言。 EL:只能從域物件獲取,或者從11個物件裡。${name} ${pageContext.request.contextPath} OGNL:是

Taglib原理實現 第五章:再論支援El表示式jstl標籤

1。問題:你想和jstl共同工作。比如,在用自己的標籤處理一些邏輯之後,讓jstl處理餘下的工作。 2。看這個jsp例子: .... <% String name="diego"; request.setAttribute("name",name); %> <c:out&

JSP中EL表示式與JSTL標籤

EL表示式格式:${} u s e

struts2進階二---OGNL表示式OGNL表示式struts2中的運用

OGNL(物件檢視導航語言)表示式 (EL表示式就是) OGNL不僅僅可以檢視導航還支援比EL表示式更加豐富的功能 使用: 準備工作1:導包(struts包裡面已經有了) 準備工作2: ognl基本語法: 1:取值 取出root中的屬性值

struts2標籤

一、  控制標籤 1、 if/elseif/else標籤 使用原理和一般的一樣,只要是在使用的過程中要注意格式,可以直接在jsp頁面使用該標籤。示例如下: <s:set var="age" value="70"/>     <s:if test="#a

jsp中的路徑、EL表示式、JSTL標籤

7.jsp頁面中的路徑     一般情況下,jsp中路徑問題是和我們之前在servlet中討論的html裡面的路徑問題是一樣的,但是在jsp中有一種情況是要特殊對待的。     如果在jsp頁面的上面寫了這樣一個指令碼:     <%     String path =

Struts2標籤常用標籤

基本概述 對於一個MVC框架而言,重點是實現兩部分:業務邏輯控制器部分和檢視頁面部分。Struts2作為一個優秀的MVC框架,也把重點放在了這兩部分上。控制器主要由Action來提供支援,而檢視則是由大量的標籤來提供支援。 在JavaWeb中,Struts2標籤

Servlet + (JSP、EL表示式、JSTL標籤)的 資料流轉

兩個Servlet之間的資料流轉:靠的是作用域 作用域是資料流轉的載體 用request舉例 傳統方式:在jsp介面中使用java指令碼段 servlet的流程: 設定請求編碼格式 req.setCharacterEncoding("utf-8");

java web javaEE ,jsp EL表示式JSTL標籤if-else if-else四種用法

一.條件運算子${user.gender==1?'男':'女'}二.if()<c:if test="${2>1}">code..</c:if>code會在test屬性為true時執行三.if()-else{}<c:choose>  &

JSP中EL表示式以及JSTL標籤

在JSP中JSTL標籤庫用的還是比較多的,今天就稍微總結一些JSTL中常用的一些標籤: 1.在JSP中還有一個就是EL表示式經常和JSTL標籤聯合使用 格式:${} ${user.name},${user["name"]} 上面的寫法一樣,但有2種情

[JSP]EL表示式JSTL標籤遍歷取值物件陣列與原來的對比

》》取出放進了request的key裡list,list含有物件 原: <%@page import="com.yiki.dbutil.*"%> <%@ page languag

struts2標籤struts-tags.tld的使用

工程中使用struts2標籤   一、 struts2標籤定義檔案在struts2-core-2.0.11.1META-INF 下面,檔名為struts-tags.tld   二、 如果工程使用了servlet2.3規範,要做兩件事,就能在工程中使用struts2標

在執行Maven的web專案的時候,頁面上的el表示式jstl標籤不能用了

後臺沒有任何的報錯,就是一直刷不出SpringMVC傳遞給頁面的資料; ${}    <c:out value="" > 這兩個玩意都是現實程式碼,說明頁面沒有識別el和jstl; 首選,需要新增依賴: <dependency><groupI