文章目录
<%@ taglib uri="/struts-tags" prefix="s"%>
<h1>调用第一个action</h1>
<!-- 调用登录的Action类,name指定<action>标签的name属性值,executeResult为true指示包含Action响应的内容
namespace指定Action类所在包指定的namespace
-->
<s:action name="login" executeResult="true" namespace="/"></s:action>
<hr>
<h1>调用第二个action</h1>
<!-- 调用第二个Action,表示注册页面,ignoreContextParams为true表示不传入参数,那么其中的password和username就不能接收参数了,因此输出为NULL -->
<s:action name="regist" executeResult="true" namespace="/" ignoreContextParams="true"></s:action>
<s:bean name="com.user.User" id="myBean" >
<!-- 使用param标签为其赋值 -->
<s:param name="username" value="'陈加兵'"></s:param>
<s:param name="age" value="22"></s:param>
姓名: <s:property value="username"/><br>
年龄:<s:property value="age"/>
</s:bean>
<!-- 创建一个日期对象now,表示当前的时间 -->
<s:set var="now" value="new java.util.Date()"></s:set>
<!-- 格式化当前的日期-->
<s:date name="#now" format="dd/MM/yyyy HH:mm:ss"/><br>
<s:include value="success.jsp"></s:include>
<s:bean name="com.user.User" id="myBean" >
<!-- 使用param标签为其赋值 -->
<s:param name="username" value="'陈加兵'"></s:param>
<s:param name="age" value="22"></s:param>
</s:bean>
<s:bean name="com.user.User" id="myBean">
<s:param name="username" value="'陈加兵'"></s:param>
<s:param name="age" value="22"></s:param>
</s:bean>
<%-- 只有在push标签内是,被放到值栈中的对象才存在,一旦出了push标签那么就不存在了 --%>
<s:push value="#myBean">
<s:property value="username"/>
<s:property value="age"/>
<!-- 这个可以看出值栈中有值 -->
<s:debug></s:debug>
</s:push>
<!-- 这个没有myBean对象 -->
<s:debug></s:debug>
<s:set var="x" value="'陈加兵'"></s:set>
<s:property value="#x"/>
<s:set var="x" value="'陈加兵'" scope="session"></s:set>
<s:property value="#session.x"/>
<s:set var="x" value="user.name"></s:set>
<s:property value="#x"/>
<s:url value="success.jsp" includeParams="get" id="myUrl">
<s:param name="username" value="'陈加兵'"></s:param>
</s:url>
<hr>
<s:url action="login"></s:url>
<hr>
<s:url action="login" namespace="/user" includeParams="get">
<s:param name="username" value="'陈加兵'"></s:param>
</s:url>
<hr>
<!-- 获取值 -->
<s:property value="#myUrl"/>
<!-- 转义标签h1,输出内容 -->
<s:property value="'<h1>陈加兵</h1>'" escape="false"/>
<!-- 输出Stack Context中的内容,并且指定了默认值 -->
<s:property value="#username" default="输出一个默认值"/>
<!-- 输出栈顶的值 -->
<s:property/>
set
,property
,debug
,i18n
这些标签,其他的了解写即可<s:set var="age" value="22"></s:set>
<s:if test="#age>10">
<s:property value="#age+'大于10'" />
</s:if>
<s:elseif test="#age>20">
<s:property value="#age+'大于20'" />
</s:elseif>
<s:else>
<s:property value="#age+'在10与20之间'" />
</s:else>
<%-- 新建一个集合list --%>
<s:set var="list" value="{'陈加兵','郑元梅',22,33}"></s:set>
<%-- 指定begin,end获取前3个元素--%>
<s:iterator value="#list" var="item" status="iter">
<s:if test="#iter.isOdd()&&#iter.getIndex()>0">
<s:property value="#item+'---'+#iter.getIndex()"/>
<br>
</s:if>
</s:iterator>
<%-- 新建一个集合list --%>
<s:set var="list" value="{'陈加兵','郑元梅',22,33}"></s:set>
<%--指定了value属性,但是其他属性都没有,那么直接可以从栈顶取数据 --%>
<s:iterator value="#">
<s:property/>
</s:iterator>
<%-- 新建一个集合list --%>
<s:set var="list" value="{'陈加兵','郑元梅',22,33}"></s:set>
<%-- 指定begin,end获取前3个元素--%>
<s:iterator value="#list" var="item" begin="0" end="2">
<%-- 因为var元素是放在Stack Context中,因此可以使用#取值 --%>
<s:property value="#item" />
</s:iterator>
<%-- 新建一个集合list --%>
<s:set var="list" value="{'陈加兵','郑元梅',22,33}"></s:set>
<%-- 指定begin,end获取前3个元素--%>
<s:iterator value="#list" var="item" status="iter">
<s:if test="#iter.isOdd()&&#iter.getIndex()>0">
<s:property value="#item+'---'+#iter.getIndex()"/>
<br>
</s:if>
</s:iterator>
<s:set var="map" value="#{'age':22,'username':'陈加兵' }"></s:set>
<s:iterator value="#map" var="item">
获取集合中的key:<s:property value="#item.key"/>
获取集合中的值:<s:property value="#item.value"/>
</s:iterator>
<%-- 新建一个集合list --%>
<s:set var="list1" value="{'陈加兵','郑元梅',22,33}"></s:set>
<s:set var="list2" value="{44,55,6,99}"></s:set>
<s:append var="list3">
<%-- 使用param标签指定要拼接的集合 --%>
<s:param value="#list1"></s:param>
<s:param value="#list2"></s:param>
</s:append>
<s:iterator value="#list3" var="item">
<s:property value="#item"/>
</s:iterator>
<%--分隔符为',',并且选取其中的前两个元素 --%>
<s:generator separator="," val="'陈加兵,郑元梅,chenjiabing'" var="x" count="2"></s:generator>
<s:iterator value="#x" var="item">
<s:property value="#item" />
</s:iterator>
<s:set var="list1" value="{'陈加兵','郑元梅'}"></s:set>
<s:set var="list2" value="{1,2}"></s:set>
<s:merge var="list3">
<s:param value="#list1"></s:param>
<s:param value="#list2"></s:param>
</s:merge>
<s:iterator var="item" value="#list3">
<s:property value="#item"/>
</s:iterator>
<!-- 创建一个集合 -->
<s:set var="list1" value="{'陈加兵','郑元梅',1,2,3}"></s:set>
<!-- 指定变量为x,存储在page中,源集合为list1,截取其中的两个元素,从第二个元素开始截取 -->
<s:subset var="x" source="#list1" count="2" start="1"></s:subset>
<!-- 由于x存储在Page中,因此使用#attr.x来获取 -->
<s:iterator value="#attr.x" var="item">
<s:property value="#item" />
</s:iterator>
<s:set var="list" value="{'陈加兵','123459999+','4442555'}"></s:set>
<!-- 创建一个实例 -->
<s:bean name="com.compare.Compare" id="compare"></s:bean>
<!-- 排序 -->
<s:sort comparator="#compare" source="#list" var="x"></s:sort>
<!-- 迭代输出 -->
<s:iterator var="item" value="#attr.x">
<s:property value="#item" />
</s:iterator>