struts 标签

来源:互联网 发布:淘宝店主手机号 编辑:程序博客网 时间:2024/05/17 09:44

1、通用标签

  1.1 property

  1.2 set

      I  默认为action scope,会将值放入request 和 ActionContext 中

      II page、request、session、application

  1.3 bean

  1.4 include (对中文文件支持有问题,不建议使用,如需包含,改用jsp包含)

  1.5 param

  1.6 debug

2、控制标签

  2.1 if……else if…… else

  2.2 iterator

    I  collections map enumeration iterator array

  2.3 subset

3、UI标签

  3.1 theme

    I  simple xhtml(默认) css xhtml ajax

4、AJAX标签

  4.1 补充

5、$、#、% 的区别

  5.1 $ 用于 i18n 和struts 配置文件

  5.2 # 取得ActionContext 的值

  5.3 % 将原来的文本属性解析为 ognl,对于本来就是 ognl 的属性不起作用

    I 参考<s:property 和 <s:include 


范例一:通用标签

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><%@taglib uri="/struts-tags" prefix="s" %><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Struts-Tags 学习</title></head><body><ol><li>property:<s:property value="username"/></li><li>property取值为字符串:<s:property value="'username'"/></li><li>property设定默认值:<s:property value="admin" default="管理员"/></li><!-- false 表示不将HTML标签解析成字符串,而是直接作为HTML标签所代表的内容进行输出,这里<hr/>是一条横线,escape默认为true --><li>设定HTML:<s:property value="<hr/>" escape="false"/></li><!-- ########################################################################################## --><!-- set标签用的并不多,比如将一个长名字set成一个短名字的时候可以使用 --><!-- 定义一个变量,值为username的值,下面的两个方法都可以取得这个值 --><li>set 设定adminName值(默认为request 和 ActionContext):<s:set var="adminName" value="username"/></li><li>set 从 request 取值:<s:property value="#request.adminName"/></li><li>set 从 ActionContext 取值:<s:property value="#adminName"/></li><!-- scope="page",当前页面有效 --><li>set 使用name属性(现在已经废弃这种属性了,直接使用var)的时候,设定范围:<s:set name="adminPassWord" value="password" scope="page"/></li><li>set 从相应范围取值:<%=pageContext.getAttribute("adminPassWord") %></li><li>set 使用var的时候,默认范围就是ActionContext:<s:set var="adminPassWord" value="password"/></li><li>set 从 ActionContext 取值:<s:property value="#adminPassWord"/></li><li>set 使用var的时候,指定session范围:<s:set var="adminPassWord" value="password" scope="session"/></li><li>set 从 session范围 取值:<s:property value="#session.adminPassWord"/></li><!-- ########################################################################################## --><li>bean 定义bean,并使用param 来定义新的属性值<!-- 必须var 定义之后才能取值,如果不适用var就必须在bean标签之内取值才能取到 --><s:bean name="com.haizhu.Tags.Dog" var="myDog"><!-- name="name"是将Dog类中的name赋值为Oudy,注意,一定要在双引号之内加上单引号,不然会将Oudy当做OGNL表达式的 --><s:param name="name" value="'Oudy'"></s:param></s:bean><!-- 当使用var之后,就可以使用"#xx"的方式取值,因为使用var之后就将这个bean放在ActionContext中了 --><s:property value="#myDog.name"/></li><!-- ########################################################################################## --><li>include 标签<!-- 一般使用<%@ include %>和<jsp:inclue >这两种方式 --><s:include value="/_include1.html"></s:include></li><li><s:set var="incPage" value="/_include2.html"></s:set><!-- %{} 的作用就是将#incPage当做OGNL表达式而不是字符串 --><s:property value="%{#incPage}"></s:property></li></ol></body></html>

范例二:遍历标签

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><%@taglib uri="/struts-tags" prefix="s" %><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Struts-Tags 学习</title></head><body><ol><li> if……else if……else 的使用<!-- 一个属性可以传递多个值(在地址栏通过后缀的形式传递过来),取值的时候如果确定取第一个值,可以使用[0]来指定  -->age=<s:property value="#parameters.age[0]"/><s:if test="#parameters.age[0] < 0"> Wrong age!</s:if><s:elseif test="#parameters.age[0] < 0"> Too young!</s:elseif><s:else>Yeah!</s:else></li><!-- 上面这个例子可以使用set来简化写法 --><li>age=<s:property value="#parameters.age[0]"/><s:set name="age" value="#parameters.age[0]"/><s:if test="#age < 0"> Wrong age!</s:if><s:elseif test="#age < 0"> Too young!</s:elseif><s:else>Yeah!</s:else></li><li><s:if test="#parameters.aaa == null"> null </s:if></li><!-- ########################################################################################## --><li>遍历集合:<br/><s:iterator value="{1,2,3}"><s:property/> |</s:iterator></li><li>自定义变量:<br/><s:iterator value="{'aaa','bbb','ccc'}" var="iter"><!-- #表示去取ActionContext中的值,这里为什么用呢?难道iter放入ActionContext中了? --><!-- 对的,看到 var 就表示放在了ActionContext中了!所以,可以用#访问。 --><s:property value="#iter.toUppperCase()"/></s:iterator></li><li>使用status<br/><s:iterator value="{'aaa','bbb','ccc','ddd'}"><s:property/> |遍历过的元素总数:<s:property value="#status.count"/> |遍历过的元素索引:<s:property value="#status.index"/> |当前元素是否是偶数位置:<s:property value="#status.even"/> |当前元素是否是奇数位置:<s:property value="#status.odd"/> |当前元素是否是第一个元素:<s:property value="#status.first"/> |当前袁术是否是最后一个元素:<s:property value="#status.last"/> |<br/></s:iterator></li><li>遍历map<br/><!-- 定义map的时候,前面有个#,跟list不一样的地方 --><s:iterator value="#{1:'aaa',2:'bbb',3:'ccc'}"><s:property value="key"/> | <s:property value="value"/> <br/></s:iterator></li><li><s:iterator value="#{1:'aaa',2:'bbb',3:'ccc'}" var="myMap"><s:property value="#myMap.key"/> | <s:property value="#myMap.value"/></s:iterator></li></ol></body></html>

项目范例:

  <s:if test="population.currentAddress != null">    <td class="title"><label>现居地址</label></td>    <td colspan="4" class="content">    <span id="alertCon">${population.currentAddress}</span>  </s:if>  <s:else>    <td class="title"><label>无房原因</label></td>    <td colspan="4" class="content">    <span>${population.noHouseReason}</span>  </s:else>