struts2 常用标签的一般用法

本文详细介绍了Struts2框架中的各种标签使用方法,包括property、set、bean、include等标签的功能与应用场景,并提供了丰富的示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.<s:property/>标签
value 默认来自top of stack,默认的类型是Object

<s:property value="username"/><br/>取username(对象)的值,
<s:property value="'username'"/><br/>显示一个字符串
<s:property value="sefdsafa" default="我是默认值"/><br/>如果找不到指定一个默认值
<s:property value="'<hr/>'" escape="false" /><br/>以html元素在页面显示

 


2.<s:set/>标签
scope存放的位置default value is Action(一般是名字太长换名用)

<s:set var="name" value="username" scope="action"></s:set>
注:username是Object,如果设置一个字符串value="'username'"
<s:property value="#name"/>
<s:property value="#request.name" />(request也能取出)

3.<s:bean/>标签
创建一个User的实例赋值保存在Stack Context

<s:bean name="com.zr.struts2.domain.User" var="myUser">
    <s:param name="username" value="'zr'" />
    <s:param name="password" value="'123'" />
    注:value不加单引号会默认成ogln表达式
</s:bean>
如果不指定var,bean标签开始时new一个User,压到栈顶,标签结束就从栈顶移走
<s:bean name="com.zr.struts2.domain.User">
    <s:param name="username" value="'zr'" />
    <s:param name="password" value="'123'" />
    <s:property value="username"/>
    <s:debug></s:debug> (在bean标签中查看)
</s:bean>


4.<s:include/>标签
    value表示一个字符串

 <s:include value="user_success.jsp" />
    
    <s:set var="user_success" value="'/user_success.jsp'"></s:set>
    <s:include value="%{#user_success}"></s:include>
    注:%{}表示将文本解析为ognl表达式

    补充:$%#的区别
        1.$用于i18n和struts的配置文件,
        2.#取ActionContext的值
        3.%将文本解析为ognl表达式。对本来就是ongl的表达式不起作用


5.<s:if/><s:elseif/><s:else>标签

 <a href="/strurts2/tag/tag?username=u&password=p&age=10&age=20">测试</a>
    
    取参数一定要取某一个具体的参数,同名参数可能有不同的值
    <s:set var="age" value="#parameters.age[0]"/>(改名)
    <s:property value="#age" />
    
    <s:if test="#age >5">大于5 </s:if>
    <s:elseif test="#age < 5 ">小于5</s:elseif>
    <s:else>等于5</s:else>

    <s:if test="#parameters.zr == null">没有zr参数</s:if>

6.<s:iterator/> 遍历元素
  

 <s:iterator value="{1,2,3}">
        <s:property/>
    </s:iterator>
    结果:1 2 3

    <br/>
    <s:iterator value="{'aa','bb','cc'}" var="x">
        <s:property value="#x.toUpperCase()" />
    </s:iterator>
    结果:AA BB CC

    <s:iterator value="{'aa','bb','cc'}" status="status">
        遍历过的元素总数<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>
    结果:遍历过的元素总数1\ 索引0\ 是否为偶数false\ 是否为奇数true\ 是不是第一个元素true\ 是不是最后一个元素false
          遍历过的元素总数2\ 索引1\ 是否为偶数true\ 是否为奇数false\ 是不是第一个元素false\ 是不是最后一个元素false
          遍历过的元素总数3\ 索引2\ 是否为偶数false\ 是否为奇数true\ 是不是第一个元素false\ 是不是最后一个元素true

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

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

 



转载于:https://www.cnblogs.com/lnzr/p/4166094.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值