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>