struts2常用的标签

注:使用标签,需要引入Struts2核心jar包,并在jsp头部加入<%@ taglib uri="/struts-tags" prefix="s" %>


1.         通用标签:

a)         property

  • id:可选属性,指定该元素的标识。
  • default:可选属性,如果要输出的属性值为null,则显示default属性的指定值。
  • escape:可选属性,指定是否忽略HTML代码。
  • value:可选属性,指定需要输出的属性值,如果没有指定该属性,则默认输出ValueStack栈顶的值
例:               property从值栈中取值(username是ognl表达式): <s:property value="username"/>         
      property 取值为字符串(加了单引号的username为字符): <s:property value="'username'"/> 
      property 设定默认值: <s:property value="admin" default="管理员"/>   //当值栈中没有 admin,则显示管理员
      property 设定HTML: <s:property value="'<hr/>'" escape="false"/>    //为true则原样显示<hr/>

b)         set

                       i.              默认范围为action scope,会将值放入request和ActionContext中

                       ii.              其他范围:page、request、session、application

              set 设定adminName值(默认为request 和 ActionContext): <s:set var="adminName" value="username" />  
        set 从request取值: <s:property value="#request.adminName" />
        set 从ActionContext取值: <s:property value="#adminName" />
set 设定var,范围为ActionContext: <s:set var="adminPassword" value="password" scope="session"/>
set 使用#取值: <s:property value="#adminPassword"/> 
set 从相应范围取值: <s:property value="#session.adminPassword"/> 

c)         bean

                 bean 定义bean,并使用param来设定新的属性值:
<s:bean name="com.struts2.tags.Dog" >
<s:param name="name" value="'pp'"></s:param>     //name为com.struts2.tags.Dog,为其赋值为pp
<s:property value="name"/>       //从值栈中取值,结果为pp

</s:bean>

                bean 查看debug情况:
<s:bean name="com.struts2.tags.Dog" var="myDog">         //myDog为com.struts2.tags.Dog的对象
<s:param name="name" value="'oudy'"></s:param>
</s:bean>
ActionContex拿出值:
<s:property value="#myDog.name"/>            

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

                 include _include1.html 包含静态英文文件
<s:include value="/_include1.html"></s:include>


include _include2.html 包含静态中文文件 (引不进来中文文件)
<s:include value="/_include2.html"></s:include>


include _include1.html 包含静态英文文件加%用法(加%的都是ognl表达式)

<s:set var="incPage" value="%{'/_include1.html'}" />

                 //将从ActionContext取出incPage对应的值再作为ognl表达式,并取出该表达式的值

<s:include value="%{#incPage}"></s:include>   

e)         param

f)          debug

<s:debug></s:debug>

2.         控制标签

a)         if elseif else

                例1:    if elseif else: 
age = <s:property value="#parameters.age[0]" /> <br />
<s:set var="age" value="#parameters.age[0]" />       //可以理解为用age替代parameters.age[0]
<s:if test="#age < 0">wrong age!</s:if>
<s:elseif test="#parameters.age[0] < 20">too young!</s:elseif>

<s:else>yeah!</s:else><br />

例2:
<s:if test="#parameters.aaa == null">null</s:if>

b)         iterator

                    遍历集合:<br />
<s:iterator value="{1, 2, 3}" >
<s:property/> |
</s:iterator>

 自定义变量:<br />
<s:iterator value="{'aaa', 'bbb', 'ccc'}" var="x">
<s:property value="#x.toUpperCase()"/> |
</s:iterator>

使用status:<br />
<s:iterator value="{'aaa', 'bbb', 'ccc'}" status="status">
<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>



         遍历Map集合
<s:iterator value="#{1:'a', 2:'b', 3:'c'}" >
<s:property value="key"/> | <s:property value="value"/> <br />
</s:iterator>


<s:iterator value="#{1:'a', 2:'b', 3:'c'}" var="x">
<s:property value="#x.key"/> | <s:property value="#x.value"/> <br />
</s:iterator>

c)         subset(取子串)

3.         UI标签

a)         theme

                         i.              simple xhtml(默认) css_xhtml ajax


4.         $ # %的区别

a)         $用于i18n和struts配置文件

b)         #取得ActionContext的值

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

                         i.              参考<s:property 和 <s:include>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值