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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用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>

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

本文出自 “zifangsky的个人博客” 博客,请务必保留此出处http://983836259.blog.51cto.com/7311475/1741694

以上是关于使用JSTL标签库替换Struts1中的logic标签的主要内容,如果未能解决你的问题,请参考以下文章

JSTL标签库

JSP开发中对jstl的引用方式(标签库引用)

EL表达式JSTL标签库

EL(表达式语言)与JSTL(JSP标准标签库)

JavaWeb 之 JSTL 标签

JSTL