使用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:present,logic:notEmpty,logic: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>

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

时间: 2024-12-26 16:25:22

使用JSTL标签库替换Struts1中的logic标签的相关文章

struts2的返回类型、struts的标签库、struts2中完成国际化

struts2的返回类型:在jsp-servlet中, 返回的类型主要有 转发, 重定向: 转发主要是RequestDispatcher的forward方法来进行操作的req.getRequestDispatcher("goods/queryGoodFenYe.jsp").forward(req, resp);重定向主要使用response对象的一些方法来操作:1.response.sendRedirect("index.jsp");2.response.addHe

Struts2的标签库(五)——表单标签

Struts2的标签库(五) --表单标签 几个特殊的表单标签的使用: 1.checkboxlist标签 该标签用于创建多个复选框,用于同时生成多个<input type="checkbox".../>的HTML标签.它根据list属性指定的集合来生成多个复选框.其标签有如下几个属性: list属性:指定要产生复选框的集合: listKey属性:该属性指定集合元素中的某个属性作为复选框的value.当集合为Map时,可以使用Key或者value来指定Map对象中的key或者

学会怎样使用Jsp 内置标签、jstl标签库及自定义标签

学习jsp不得不学习jsp标签,一般来说,对于一个jsp开发者,可以理解为jsp页面中出现的java代码越少,对jsp的掌握就越好,而替换掉java代码的重要方式就是使用jsp标签. jsp标签的分类: 1)内置标签(动作标签): 不需要在jsp页面导入标签 2)jstl标签: 需要在jsp页面中导入标签 3)自定义标签 : 开发者自行定义,需要在jsp页面导入标签 1.内置标签(动作标签): <jsp:forward />转发标签: 语法:<jsp:forward page="

JavaWeb基础—EL表达式与JSTL标签库

EL表达式: EL 全名为Expression Language.EL主要作用 获取数据(访问对象,访问数据,遍历集合等) 执行运算 获取JavaWeb常用对象 调用Java方法(EL函数库) 给出一个小案例: <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ page import="com.jiangbei.domain

【转】Struts1.x系列教程(4):标签库概述与安装

转载地址:http://www.blogjava.net/nokiaguy/archive/2009/01/archive/2009/01/archive/2009/01/archive/2009/01/15/251411.html Struts的整个视图层(就是MVC模式中的View层)是由Struts的定制标签(或者称为定制动作)和客户端代码(Javascript.HTML等)实现的.这些Struts标签被写在JSP页面中,用于生成客户端代码.进行逻辑判断等工作,使用Struts标签可以尽量

jstl标签库基础教程及其使用代码

概述 在 JSP 页面中,使用标签库代替传统的 Java 片段语言来实现页面的显示逻辑已经不是新技术了,然而,由自定义标签很容易造成重复定义和非标准的实现.鉴于此,出现了 JSTL ( JSP Standard Tag Library ).大多数 JSP 页面逻辑提供了实现的 JSTL 技术,该技术本身就是一个标签库. Sun 公司 Java 规范标准的 JSTL 由 apache jakarta 组织负责维护.作为开源的标准技术,它一直在不断地完善. JSTL 的发布包有两个版本: Stand

[应用篇]第三篇 JSP 标准标签库(JSTL)总结

有一种友谊叫做: "陪我去小卖部." "不去," "我请你" "走." 你想起了谁:胖先生?还有人陪你吗? JSP 标准标签库(JSP Standard Tag Library)是一个 JSP 标签集合,它封装了 JSP 应用的通用核心功能. 它的出现,是因为人们开始注重软件的分层设计,不希望在 JSP 页面中出现 JAVA 逻辑代码.同时也由于自定义标签的开发难度较大.不利于技术的标准化,因此产生了 JSTL. JSTL 和

JSTL标签库大全

JSTL简介: 标准标签库JSTL的全名为:Java Server Pages Standard Tag Library. JSTL主要提供了5大类标签库: 1.       核心标签库: 为日常任务提供通用支持,如显示和设置变量,重复使用一组项目,测试条件以及其他操作(如导入和重定向web页面等). 2.       国际化(I18N)标签库: 支持多种语言的引用程序. 3.       SQL标签库: 对访问和修改数据库提供标准化支持. 4.       XML标签库: 对XML文件处理和操

JSTL标签库简介

JSTL叫做标准标签库,但实际上它是由5个功能不同的标签库组成.当使用标签库时,必须在jsp页面的顶部使用<%@  taglib %>指令定义引用的标签库和访问前缀.这5中标签库及taglib指令如下所示: (核心标签库)<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> (格式标签库)<%@ taglib prefix="fmt" uri