使用JSTL标签库替换Struts1中的logic标签

       如题所示,在做一个基于SSH框架的实战小项目时,发现不少地方都还在使用logic标签。这个标签不仅我不熟悉,而且在现在看来也显得过时了,因此我就想替换成我熟悉的JSTL标签

比如说,原来是这样的:

<logic:present scope="request" name="onSaleGoodsList">  
   <table border="0">
   <s:iterator id="goods" value="#request.onSaleGoodsList">
	  <tr><td>	 
	    <!-- 显示在拍商品信息 --> 
		<div class="goods_pic"><img src="/zxpm/${goods.goodsPic}" title="${goods.goodsDesc}" style="width:100px;border:dashed 1px green;"></img></div></td>
		<td valign="top"><div class="goods_info" style="border:solid 0px blue;">
			<span class="info_title">商品名称</span>&nbsp;<strong>${goods.goodsName}</strong><br />
			<span class="info_title">卖  &nbsp;&nbsp;   家</span>&nbsp;<em>${goods.saler.userName}</em> <br />
			<span class="info_title">起 拍 价</span>&nbsp;<span style="color:green;">${goods.goodsPrice}</span><br />
			<!-- 如果用户已经登录,且不是该商品的卖家,则在该商品旁显示“出价”按钮 -->
			<logic:notEmpty name="user" scope="session">					
				<logic:notEqual name="goods" property="saler.userId" value="${sessionScope.user.userId}">
					<a class="a_button" href="/zxpm/goods/doBid?goods.goodsId=${goods.goodsId}"><font color="red">我要出价</font></a>
				</logic:notEqual>
			</logic:notEmpty>

可以发现,这里面主要有一个logic:presentlogic:notEmptylogic:notEqual。虽然没用过,但是根据字面意思还是可以猜出是干什么的,因此就好替换了

(1)删掉跟logic:present相关的内容,因为不需要

(2)引入JSTL标签库:<%@ taglib prefix=”c” uri=”http://java.sun.com/jsp/jstl/core” %>

(3)logic:notEmpty和logic:notEqual都替换成一个c:if标签

需要注意的是,c:if中的“空”不能用xxx == null这种形式来表示,而是empty xxx ;其次,如果c:if里有多个判断语句需要用 and 来连接,而不是 || 的形式

因此,上面那一段替换之后的效果是这样的:

<s:iterator var="goods" value="#request.onSaleGoodsList">
			<tr>
				<td>
					<!-- 显示在拍商品信息 -->
					<div class="goods_pic">
						<img src="/OnlineAuction/uploadImages/${goods.goodsPic}" title="${goods.goodsDesc}"
							style="width: 100px; border: dashed 1px green;"></img>
					</div>
				</td>
				<td valign="top"><div class="goods_info"
						style="border: solid 0px blue;">
						<span class="info_title">商品名称</span>&nbsp;<strong>${goods.goodsName}</strong><br />
						<span class="info_title">卖 &nbsp;&nbsp; 家</span>&nbsp;<em>${goods.saler.userName}</em>
						<br /> <span class="info_title">起 拍 价</span>&nbsp;<span
							style="color: green;">${goods.goodsPrice}</span><br />
						<!-- 如果用户已经登录,且不是该商品的卖家,则在该商品旁显示“出价”按钮 -->
						<c:if test="${!empty sessionScope.user and goods.saler.userId != sessionScope.user.userId }">
							<a class="a_button"
									href="/OnlineAuction/goods/doBid.action?goods.goodsId=${goods.goodsId}"><font
									color="red">我要出价</font></a>
						</c:if>

我碰到的情况主要就是这些了,根据意思相应的替换就行,难度不大

你可能感兴趣的:(struts2,jstl,logic)