(18)Struts2_通用標籤

Struts2_通用標籤


property 標籤

property 標籤用來輸出一個值棧屬性的值

  • default [String] 可選 默認:,如果value值爲null或沒有給定,將顯示該屬性值
  • escape [Boolean]

屬性

類型

默認值

說明

default

String

可選,如果value值爲null或沒有給定,將顯示該屬性值

escape

Boolean

true

可選,是否要對HTML特殊字符進行轉義

value

String

<來自棧頂對象>

將要顯示的值

示例:

輸出 Action 屬性 customerId 的值: <s:property value="customerId"/>

輸出 session 屬性 userName 的值: <s:property value="#session.userName"/>

在許多情況下, JSP EL 可以提供更簡潔的語法


url 標籤

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body>

    <s:debug></s:debug>

    <!-- action:指定生成的url爲哪個action ; var:指定用來被壓入ContextMap中的鍵值-->
    <s:url action="czy_save" var="url"></s:url>
    ${url } <br><br><br><br>

    <s:url action="czy_save" var="url1">
        <s:param name="dlh" value="54110"></s:param>
    </s:url>
    ${url1 } <br><br><br><br>

    <s:url action="czy_save" var="url2">
        <s:param name="dlh" value="54110"></s:param>
        <!-- 對於非數字的value值,會自動進行OGNL解析 -->
        <s:param name="request" value="request"></s:param>
        <!-- 對於OGNL解析後不存在的value將不做處理 -->
        <s:param name="name" value="tom"></s:param>
        <!-- 若不希望解析可使用單引號 -->
        <s:param name="hobby" value="'reading'"></s:param>
    </s:url>
    ${url2 } <br><br><br><br>

    <s:url action="czy_save" var="url3" includeParams="all">
    </s:url>
    ${url3 } <br><br><br><br>

    <s:url action="czy_save" var="url4" namespace="/user" method="save">
    </s:url>
    ${url4 } <br><br>


</body>
</html>


set 標籤

向page、request、session、application 域對象中加入一個屬性值。

    <s:set name="xuehao" value="541107030" scope="request"></s:set>
    ${requestScope.xuehao }<br><br>
    <!-- 對於非數字的value值,會自動進行OGNL解析 -->
    <s:set name="banji" value="likesheng" scope="request"></s:set>
    ${requestScope.banji }<br><br>

push 標籤

push 標籤將把一個對象壓入 ValueStack 而不是壓入 ContextMap.

push 標籤在標籤起始時把一個對象壓入棧, 標籤結束時將對象彈出棧.

名字

類型

默認值

說明

value

String

將被壓入Value Stack棧的值

    <%
    Person p = new Person("tom",24);
    request.setAttribute("person", p);
    %>
    <s:push value="#request.person">
    姓名:${name }<br>
    </s:push>
    姓名:${name }

if, else 和 elseif 標籤

這三個標籤用來進行條件測試, 它們的用途和用法類似於 if, else 和 elseif 關鍵字. 其中 if 和 elseif 必須有 test 屬性

名稱

類型

默認值

說明

test

Boolean

測試條件

     <s:if test="age>65">
        老年
    </s:if>
    <s:elseif test="age>40">
        中年
    </s:elseif>
    <s:elseif test="age>18">
        青年
    </s:elseif>
    <s:else>
        少年
    </s:else>


iterator 標籤

iterator 標籤用來遍歷一個數組, Collection 或一個 Map, 並把這個可遍歷對象裏的每一個元素依次壓入和彈出 ValueStack 棧

    <%
    List<Person> persons = new ArrayList<Person>();
    persons.add(new Person("A",10));
    persons.add(new Person("B",20));
    persons.add(new Person("C",30));
    persons.add(new Person("D",40));
    persons.add(new Person("E",50));

     request.setAttribute("persons", persons);
     %>

     <s:iterator value="#request.persons" status="s">
        name--${name }--index--${s.index}--age--${age }--${s.count }<br>
     </s:iterator>

名字

類型

默認值

說明

value

String

將被遍歷的可遍歷對象

status

org.apache.struts2.views.jsp.IteratorStatus

var

String

用來引用這個可遍歷對象中的當前元素的變量

iterator 標籤的 status 屬性的屬性值

sort 標籤

sort 標籤用來對一個可遍歷對象裏的元素進行排序.

名字

類型

默認值

說明

comparator

java.util.Comparator

在排序過程中使用的比較器

source

String

將對之進行排序的可遍歷對象

var

String

用來引用因排序而新生成的可遍歷對象的變量

    <%
    List<Person> persons = new ArrayList<Person>();
    persons.add(new Person("A",10));
    persons.add(new Person("D",40));
    persons.add(new Person("B",20));
    persons.add(new Person("E",50));
    persons.add(new Person("C",30));

     request.setAttribute("persons", persons);
     %>

     <s:iterator value="#request.persons" status="s">
        name--${name }--index--${s.index}--age--${age }--${s.count }<br>
     </s:iterator>
     <br><br>
     <!-- s:sort 可以對集合中的元素進行排序 -->
     <%
        PersonComparator pc = new PersonComparator();
        request.setAttribute("comparator", pc);
      %>
      <s:sort comparator="#request.comparator" source="#request.persons" var="person_">
        <s:iterator value="#attr.person_">
            ${name }--${age } <br>
        </s:iterator>
      </s:sort>

package com.qbz.struts2_02;

import java.util.Comparator;

public class PersonComparator implements Comparator<Person> {

    @Override
    public int compare(Person o1, Person o2) {
        return o1.getName().compareTo(o2.getName());
    }

}


date 標籤

date 標籤用來對 Date 對象進行排版

format 屬性的值必須是 java.text.SimpleDateFormat 類裏定義的日期/時間格式之一.

 <!-- date 標籤 -->
      <s:date name="#session.date" format="yyyy-MM-dd hh:mm:ss" var="data_"/>
      ${data_ }


a 標籤

a 標籤將呈現爲一個 HTML 連接. 這個標籤可以接受 HTML 語言中的 a 元素所能接受的所有屬性.

     <s:iterator value="#request.persons">
         <!-- href中對name進行強制OGNL解析  %{} -->
        <s:a href="getPerson.action?name=%{name}">${name }</s:a><br>
     </s:iterator>

以下標籤不常用,瞭解。


action 標籤

action 標籤用在頁面上來執行一個 action.

action 標籤還會把當前 Action 對象壓入 ValueStack 值棧的 ContextMap 子棧.


bean 標籤

bean 標籤將創建一個 JavaBean, 並把它壓入 ValueStack 值棧的 ContextMap 子棧. 這個標籤的功能與 JSP 中的 useBean 動作元素很相似


include 標籤

include 標籤用來把一個 Servlet 或 JSP 頁面的輸出包含到當前頁面裏來.


append, merge 標籤

append 標籤用來合併可遍歷對象

merge 標籤用來交替合併可遍歷對象


generator 標籤

generator 標籤用來生成一個可遍歷對象並把它壓入 ValueStack 棧.

generator 標籤結束標記將彈出遍歷對象

如果在一個 generator 標籤裏給出了 converter 屬性, 新生成的可遍歷對象裏的每一個元素都會傳遞到該屬性所指定的方法進行必要的轉換.

subset 標籤

subset 標籤用來創建一個可遍歷集合的子集.

subset 標籤通過 decider 屬性來創建一個可遍歷集合的子集


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章