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 标签
![这里写图片描述](https://img-blog.csdn.net/20160905213605688)
<%@ 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>
<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>
<s:param name="request" value="request"></s:param>
<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>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
![这里写图片描述](https://img-blog.csdn.net/20160905214930071)
set 标签
<s:set name="xuehao" value="541107030" scope="request"></s:set>
${requestScope.xuehao }<br><br>
<s:set name="banji" value="likesheng" scope="request"></s:set>
${requestScope.banji }<br><br>
![这里写图片描述](https://img-blog.csdn.net/20160905215705067)
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 }
![这里写图片描述](https://img-blog.csdn.net/20160905221418811)
if, else 和 elseif 标签
这三个标签用来进行条件测试, 它们的用途和用法类似于 if, else 和 elseif 关键字. 其中 if 和 elseif 必须有 test 属性
<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>
![这里写图片描述](https://img-blog.csdn.net/20160905222446131)
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>
![这里写图片描述](https://img-blog.csdn.net/20160905224143373)
名字 | 类型 | 默认值 | 说明 |
---|
value | String | | 将被遍历的可遍历对象 |
status | org.apache.struts2.views.jsp.IteratorStatus | | |
var | String | | 用来引用这个可遍历对象中的当前元素的变量 |
iterator 标签的 status 属性的属性值
![这里写图片描述](https://img-blog.csdn.net/20160905223757749)
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>
<%
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>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
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());
}
}
![这里写图片描述](https://img-blog.csdn.net/20160907081427828)
date 标签
date 标签用来对 Date 对象进行排版
![这里写图片描述](https://img-blog.csdn.net/20160907082414391)
format 属性的值必须是 java.text.SimpleDateFormat 类里定义的日期/时间格式之一.
<s:date name="#session.date" format="yyyy-MM-dd hh:mm:ss" var="data_"/>
${data_ }
![这里写图片描述](https://img-blog.csdn.net/20160907083455358)
a 标签
a 标签将呈现为一个 HTML 连接. 这个标签可以接受 HTML 语言中的 a 元素所能接受的所有属性.
<s:iterator value="#request.persons">
<s:a href="getPerson.action?name=%{name}">${name }</s:a><br>
</s:iterator>
![这里写图片描述](https://img-blog.csdn.net/20160907084217885)
以下标签不常用,了解。
action 标签
action 标签用在页面上来执行一个 action.
action 标签还会把当前 Action 对象压入 ValueStack 值栈的 ContextMap 子栈.
![这里写图片描述](https://img-blog.csdn.net/20160907084527154)
bean 标签
bean 标签将创建一个 JavaBean, 并把它压入 ValueStack 值栈的 ContextMap 子栈. 这个标签的功能与 JSP 中的 useBean 动作元素很相似
![这里写图片描述](https://img-blog.csdn.net/20160907084619701)
include 标签
include 标签用来把一个 Servlet 或 JSP 页面的输出包含到当前页面里来.
![这里写图片描述](https://img-blog.csdn.net/20160907084720627)
append, merge 标签
append 标签用来合并可遍历对象
merge 标签用来交替合并可遍历对象
![这里写图片描述](https://img-blog.csdn.net/20160907084822378)
![这里写图片描述](https://img-blog.csdn.net/20160907084846593)
generator 标签
generator 标签用来生成一个可遍历对象并把它压入 ValueStack 栈.
generator 标签结束标记将弹出遍历对象
![这里写图片描述](https://img-blog.csdn.net/20160907084944036)
如果在一个 generator 标签里给出了 converter 属性, 新生成的可遍历对象里的每一个元素都会传递到该属性所指定的方法进行必要的转换.
![这里写图片描述](https://img-blog.csdn.net/20160907085034329)
subset 标签
subset 标签用来创建一个可遍历集合的子集.
subset 标签通过 decider 属性来创建一个可遍历集合的子集
![这里写图片描述](https://img-blog.csdn.net/20160907085136970)
![这里写图片描述](https://img-blog.csdn.net/20160907085610981)