struts 标签

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>




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值