1. 程式人生 > >Struts2常用標籤之通用標籤的使用

Struts2常用標籤之通用標籤的使用

Struts2標籤的分類:

  • 通過struts2的文件可以檢視到所有的標籤:strust2\struts-2.3.7\docs\WW\tag-reference.html。
  • 分為:Generic Tags(通用標籤庫)和UI Tags(UI標籤庫)。

Struts2通用標籤庫之資料標籤:

  • <s:property/>標籤用來執行OGNL表示式,最為常用的方式是使用它在頁面中輸出ValueStack或ActionContext中的資料。<s:property value="#request.hello"/>等同於ActionContext.getContext().getRequest().get("hello");
  • 引數說明:
    名稱 必需 預設值 型別 說明
    default String 表示預設值。當結果為null時,輸出預設值。
    escape true Boolean 表示是否進行轉義。該值為true時,當結果中包含<、>、”、’、&時,對其進行轉義。
    value 棧頂物件 Object Ognl表示式

  • 以下是Struts2自帶的例子,如果想了解的更加詳細。可以檢視參考文件,也就是上面給出的,點選某個標籤就行。
    Examples
    <s:push value="myBean">
        <!-- Example 1: -->
        <s:property value="myBeanProperty" />
    
        <!-- Example 2: -->TextUtils
        <s:property value="myBeanProperty" default="a default value" />
    </s:push>
    
    Example 1 prints the result of myBean's getMyBeanProperty() method.
    Example 2 prints the result of myBean's getMyBeanProperty() method and if it is null, print 'a default value' instead.
    

<s:set/>標籤的使用:

  • <s:set/>標籤用來建立一個變數,儲存到指定的範圍內。
  • <s:set var="myVal" value="124" scope="name"/>,建立一個變數,儲存到page範圍,key為'myVal',值為‘name’運算後的值。
  • 常用引數介紹:
  • 名稱 必需 預設值 型別 說明
    var String 變數的域名字,預設不是Ognl表示式
    value 棧頂物件 Object OGNL表示式
    scope Action String 變數的範圍。可選值:application、session、request、page、action

  • scope的可選值action是一個陌生的範圍,它是scope的預設值。它表示儲存到request和OgnlContext兩個範圍中。即比request範圍多出了一個OgnlContext範圍。
  • 一些用法:
    <s:set var=”myVar” value=”#parameters.score[0]” />
    <s:property value=”#myVar”/>等同於ActionContext.getContext().get(“myVar”);
    <s:property value=”#request.myVar”/>等同於ActionContext.getContext.getReuqest().get(“myVar”);
    
    Struts2自帶的例子:
    <s:set name="personName" value="person.name"/>
    Hello, <s:property value="#personName"/>. How are you?

<s:push/>標籤的使用:

  • <s:push/>標籤是把指定值壓入到值棧中,當執行完<s:push/>標籤後,壓入到值棧的值會被彈出。
  • <s:push value="hello"/>相當於將'hello'壓入值棧後,馬上彈出,相當於什麼都沒做。
  • <s:push value=”#session.user”>把user壓入到值棧中
      <s:property value=”username”/>列印值棧元素的username屬性
      <s:property value=”password”/>列印值棧元素的password屬性
    </s:push>把user從值棧中彈出

<s:url/>標籤的使用:

  • <s:url/>標籤通常用來生成action路徑,它與<c:url/>標籤類似。
  • <s:url action="testAction"/>在頁面列印"/專案名/testAction.action"。也就是它與<c:url/>一樣會生成全路徑。而且無需給出字尾名,action屬性的值只需和struts.xml檔案中的<action name="testAction"/>name屬性的相同就行。
  • <s:url namespace="/" action="textAction"/>還可以指定名稱空間。
  • <s:url/>標籤通常結合<s:param/>標籤使用,來傳遞引數。例如:
    <s:url action=”TestAction”>
      <s:param name=”name” value=”’張三’”/>
    </s:url>
    

  • 頁面列印結果:頁面中列印為:/ognl/TestAction.action?name=%E5%BC%A0%E4%B8%89。通過URL傳遞引數。其中的中文通過URL編碼。
  • 其中的<s:param/>是用來作為子標籤的,它的作用是指定引數。它的value屬性為Ognl表示式,所以張三用單引號引起來,表示Ognl表示式的字元常量。
  • <s:url/>常用引數說明
    名稱 必需 預設值 型別 說明
    action String 指定生成URL的action
    value String 指定用於生成URL的地址值。
    通常只使用action或value其中一個屬性。
    method String 指定呼叫action中的方法。
    如果使用的是value屬性,那麼該屬性無效。
    var String 如果指定了該屬性,那麼生成的URL不會輸出到頁面中,
    而是被儲存到OgnlContext中。
    namespace String 指定action的名稱空間
    forceAddSchemeHostAndPort
    false Boolean 當該屬性為true時,生成的URL為絕對路徑,
    而且會包含主機名及埠號。

<s:a/>標籤的使用:

  • 它用來生成超連結,與<s:url/>類似。
  • 用法:
    <s:a action=”TestAction” namespace=”/”>新增使用者
      <s:param name=”name” value=”’張三’”/>
    </s:a>
    

<s:debug/>標籤的使用:

  • Debug標籤用於除錯,它在頁面中生成一個"[Debug]"超連線,單擊這個超連結,可以檢視ValueStack和ActionContext中儲存的所有物件。

Struts2通用標籤之控制標籤:

  • 控制標籤很好理解,就是流程控制了。例如if、elseif等,以及iterator等。
    <s:if>、<s:elseif>、<s:else>
    這種標籤大家應該一看就會用了。我們直接給出個小例子看看。
    <!—
    在瀏覽器中輸入:http://localhost:8080/tagtest/index.jsp?score=85
    -->
    <s:set name="score" value="#parameters.score[0]"/>
    <s:property value="#score"/>: 
    <s:if test="#score > 100 || #score < 0">
    	<s:property value="'輸入錯誤'"/>
    </s:if>
    <s:elseif test="#score >= 90">
    	<s:property value="'A'" />
    </s:elseif>
    <s:elseif test="#score >= 80">
    	<s:property value="'B'" />
    </s:elseif>
    <s:elseif test="#score >= 70">
    	<s:property value="'C'" />
    </s:elseif>
    <s:elseif test="#score >= 60">
    	<s:property value="'D'" />
    </s:elseif>
    <s:else>
    	<s:property value="'E'"/>
    </s:else>
  • <s:iterator/>標籤可以用來迭代一個集合,可以迭代的的集合有:Collection、Map、Enumeration、Iterator或者是陣列。iterator標籤在迭代過程中,會把當前物件暫時壓入值棧,這樣在子標籤中就可以直接訪問當前物件的屬性(因為當前物件在棧頂),在標籤體執行完畢後,位於棧頂的物件就會被刪除,在迴圈的第二圈時,把新的當前物件再壓入值棧中。
    • <s:iterator value="{'zhangSan','liSi','wangWu' }">
      	name: <s:property/><br/>
      </s:iterator>
  • 如果為<s:iterator>標籤指定了var屬性,那麼當前物件不只是壓入到了值棧中,而且還會被新增到OgnlContext中。
    <s:iterator value="{'zhangSan','liSi','wangWu' }" var="name">
    	name: <s:property value="#name"/><br/>
    </s:iterator>
    

  • <s:iterator/>標籤常用引數介紹:
    名稱 必需 預設值 型別 說明
    var String 如果指定了該屬性,
    那麼迭代的集合中的元素將被儲存到OgnlContext中,
    可以通過該屬性的值來引用集合中的元素。該屬性幾乎不被使用。
    value Coolection、
    Map、
    Enumeration、
    Iterator 或陣列
    指定迭代的集合。
    如果沒有指定該屬性,
    那麼iterator標籤將把位於值棧棧頂的物件放入一個新建立的List中進行迭代。
    status String 如果指定了該屬性,
    一個IteratorStatus例項將被放入到OgnlContext中,

    通過該例項可以獲取迭代過程中的一些狀態資訊。


  • IteratorStatus類在org.apahce.struts2.views.jsp包下。下面是對該類常用方法的介紹:
    • public int getCount():得到當前已經迭代的元素的總數。
    • public int getIndex():得到當前迭代的元素的索引。
    • public boolean isEven():判斷當前迭代的元素的個數是否是偶數。
    • public boolean isOdd():判斷當前迭代的元素的個數是否是奇數。
    • public boolean isFirest():判斷當前迭代的元素是否是第一個元素。
    • public boolean isLast():判斷當前迭代的元素是否是最後一個元素。
  • 示例程式碼的使用如下:(在OGNL表示式中使用IteratorStatus類的方法時,可以直接使用:count、index、even、odd、first、last屬性。)
    <s:iterator value='{"one", "two", "three"}' status="status">
    	<s:property value="#status.count"/>,
    	<s:property value="#status.index"/>,
    	<s:property value="#status.even"/>,
    	<s:property value="#status.odd"/>,
    	<s:property value="#status.first"/>,
    	<s:property value="#status.last"/><br/>
    </s:iterator>
    <hr/>
    <s:iterator value="#{'1':'one','2':'two','3':'three','4':'four'}" status="st">
    <s:property value="key"/>:<s:property value="value"/><br/>
    </s:iterator

相關推薦

Struts2常用標籤通用標籤的使用

Struts2標籤的分類: 通過struts2的文件可以檢視到所有的標籤:strust2\struts-2.3.7\docs\WW\tag-reference.html。分為:Generic Tag

Struts2 通用標籤date標籤的使用

  date標籤 :目的就是規範化格式化 連線頁面 <% Date dd=new Date(); session.setAttribute("dd", dd); %> <a href="gg.action">map棧<

JSP標籤動作標籤

注意: 1.JSP 動作元素與JSP指令元素不同的是,JSP動作元素在請求處理階段起作用。 2.jsp動作標籤與HTML標籤有本質區別 動作標籤是由伺服器解釋執行的,它和java程式碼一樣都是在伺服器端執行的。 HTML標籤由瀏覽器來解釋執行

Struts1標籤logic標籤

Logic標籤大部分的功能是對屬性值進行判斷,相等後就可以進行設定內容 1.數值比較標籤集:以下六個標籤都是用於比較數值的標籤 關鍵字:logic:equal/notequal/greaterEqueal/greaterThan/lessEqual/lessThan,n

微信小程式裡面的標籤和html標籤的對比、微信小程式基礎常用控制元件

微信小程式和html5標籤的區別: HTML5 微信小程式 <h1></h1>...<h6></h6> <p>&l

Struts2框架核心攔截器&標籤

4、Struts2框架核心之攔截器&標籤庫 上接Struts2與頁面間的資料互動(2)--OGNL表示式&ValueStack:https://blog.csdn.net/biggerchong/article/details/84573784  目

Struts2常用標籤的使用以及Action傳值

為了學習struts2框架,這次練習完成了一個簡單的功能,希望能夠在struts表單標籤的使用以及傳值方面能夠對大家的學習起到參考作用。 專案功能 專案的功能是在提交頁面輸入個人資訊之後點選提交跳轉到一個新的頁面,新的頁面會顯示之前所填寫的個人資訊。 開發環境和

spring-boot-starter-logging logback常用配置標籤詳解

logback 常用配置詳解(二) <appender> <appender>: <appender>是<configuration>的子節點,是負責寫日誌的元件。 <appender>有兩個必要

Struts2中的通用標籤

1:tag.jsp <%@ page language="java" contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="cn.mldn.control

Taglib標籤六Taglib中常用的屬性值與tld常用標籤簡介與web.xml設定自定義標籤的uri

tld標籤的描述檔案   標籤的描述檔案是一個描述整個標籤庫標記資訊和標籤庫中每個標籤處理器以及其屬性的XML文件。可以包含如下的一些元素。   1. tlibversion:標籤庫版本號,是一個點式十進位制數(例如1.0),最多為4組小數點分隔的數字組成。   2. jspversion:標籤庫所需

jstl最常用標籤

一 定義 <c:set> 這個標籤用於某個範圍(page、request、session、application)中設定某個值。 二 程式碼 <%@ page language=

VS2013/MFC程式設計入門三十一(常用控制元件:標籤控制元件Tab Control )

前面兩節講了樹形控制元件Tree Control,本節開始講解標籤控制元件Tab Control,也可以稱為選項卡控制元件。        標籤控制元件簡介        標籤控制元件也比較常見。它可以把多個頁面整合到一個視窗中,每個頁面對應一個標籤,使用者點選某個標

struts2通用標籤

一.介紹 Struts2的作用 Struts2標籤庫提供了主題、模板支援,極大地簡化了檢視頁面的編寫,而且,struts2的主題、模板都提供了很好的擴充套件性。實現了更好的程式碼複用。Struts2

Struts2form標籤的action及namespace屬性的組合使用

jsp頁面: <s:formname="login"method="post"action="login" namespace="/hello" > struts.xml檔案: <

Struts2常用標籤的用法

  property標籤:<br>      1.取值:<s:property value="username"/><br>      <!--      property的value對應了一個object,struts2會自動的轉換成一個ognl表示式,然後取值. 

HTML_常用標籤插入圖片標籤

二、使用HTML進行網站圖片插入 開發工具:HBuilder 所需標籤img 常用屬性為:title ,alt, width.height 描述:插入三張相同的照片分別用來練習不同屬性的作用  程式碼截圖 程式碼分析 標籤說明  src=相對路徑   相

struts2iterator標籤雙重迴圈

1 struts標籤中有一個迴圈的標籤,iterator標籤。iterator雙重迴圈也可以使用。iterator中的var屬性表示集合中的元素單元。 如:<s:iterator value="#request.bean.doubleList" var="list1"

Struts2標籤set

   Struts2標籤可以分為UI標籤,非UI標籤和ajax標籤。1.UI標籤:主要用於顯示頁面,生成HTML。2.非UI標籤:主要是訪問資料,其中它可以分為資料標籤(資料儲存和處理)和控制標籤(條

jstl最常用標籤

一 定義 <c:remove>這個標籤用於刪除某個變數或是屬性。 二 實戰 <%@ page language="java" import="java.util.*,com.ca

Struts2常用標籤總結

    ,'XML'</span></pre><spanstyle="font-size:18px;">}" decider="#mydecider"var="newList"/>直接輸出page範圍的newList屬性:<br/>${pageScope.