c标签和struts2标签一些用法上的区别

本文对比了Struts2标签和C标签在if...else条件判断、集合遍历及变量设置等方面的用法差异。通过具体示例展示了两种标签的不同之处,如变量声明方式、值获取方法等。

struts2标签有if.....else

<s:if></if>

<s:else></s:else>

如果要用c标签来表示if.....else 的效果

<c:choose>

<c:when test=....></when> 相当于if

<c:otherwise></c:otherwise> 相当于else

</c:choose>


遍历集合 假设遍历personList 看他们的不同写法

<s:iterator value="personList " var="var"> //这里直接写personList

<s:property value="#var.name" /> //获取这个人的名字 注意这里用的是#号

</s:iterator>

换成c标签

<c:forEach items=${personList} var="var"> //这里写${personList}

<c:out value="${var.name}" /> //这里用的是$符号

</c:forEach>

似乎c标签都要用${} 来获取值, s标签似乎要简单些。


在看一下<s:set> <c:set> 之间的用法区别

<c:set var="str" value="${var.proInfo.id }0000"></c:set>

<c:set var="p1"value="${str.substring(0,2) }"></c:set>

<c:set var="p2"value="${str.substring(0,4) }"></c:set>

<c:set var="picpath" value="artwork/${p1 }/${p2 }/${var.proInfo.id }"></c:set>

如果c标签要获取上面str的值 直接使用<c:out value="${str}" /> 就能获取到该值。上面p1就使用了str的值

看一下s标签的用法

<s:set name="str" value="#var.proInfo.id+'0000'"></s:set> //注意c标签用var 而s标签用的是name 这是个重要的区别点
<s:set name="p1" value="#str.substring(0,2)"></s:set>
<s:set name="p2" value="#str.substring(0,4)"></s:set>
<s:set name="picpath" value="'artwork/'+#p1+'/'+#p2+'/'+#var.proInfo.id"></s:set>

如果s标签要获取上面str的值 直接使用<s:property value="#str" /> 就能获取到该值。 上面p1就使用了str的值


还是来看c:if 和 s:if 中test的写法

<c:forEach var="art" items="${productInfoList}">
var att = "关注", flag = 0;
<c:forEach var="atten" items="${productAttentionList}">
<c:if test="${atten.productInfo.id==art.id}">att = "已关注"; flag = 1;</c:if> //遍历嵌套, 看test中的写法
</c:forEach>
</c:forEach>

回到s:if标签中的test写法

<s:iterator var="art" value="productInfoList">
var att = "关注", flag = 0;
<s:iterator var="atten" value="productAttentionList">
<s:if test="#atten.productInfo.id==#art.id">att = "已关注"; flag = 1;</s:if> //遍历嵌套, 看test中的写法
</s:iterator>
</s:iterator>








评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值