属性 | 类型 | 默认值 | 说明 |
---|---|---|---|
default | String | 可选,如果value值为null或没有给定,将显示该属性值 | |
escape | Boolean | true | 可选,是否要对HTML特殊字符进行转义 |
value | String | <来自栈顶对象> | 将要显示的值 |
<s:property value="customerId"/>
<s:property value="#session.userName"/>
<%@ 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>
<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>
名字 | 类型 | 默认值 | 说明 |
---|---|---|---|
value | String | 将被压入Value Stack栈的值 |
<%
Person p = new Person("tom",24);
request.setAttribute("person", p);
%>
<s:push value="#request.person">
姓名:${name }<br>
</s:push>
姓名:${name }
名称 | 类型 | 默认值 | 说明 |
---|---|---|---|
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>
<%
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 | 用来引用这个可遍历对象中的当前元素的变量 |
名字 | 类型 | 默认值 | 说明 |
---|---|---|---|
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 标签 -->
<s:date name="#session.date" format="yyyy-MM-dd hh:mm:ss" var="data_"/>
${data_ }
<s:iterator value="#request.persons">
<!-- href中对name进行强制OGNL解析 %{} -->
<s:a href="getPerson.action?name=%{name}">${name }</s:a><br>
</s:iterator>