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

简介:

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

比如说,原来是这样的:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
< 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 来连接,而不是 || 的形式

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
< 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 >

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



本文转自 pangfc 51CTO博客,原文链接:http://blog.51cto.com/983836259/1741694,如需转载请自行联系原作者

相关文章
|
XML JavaScript Java
Java Web之JSP操作XML(XML的文档结构 语法和注释、dom4j的下载与配置 应用dom4j创建、解析和修改XML)
Java Web之JSP操作XML(XML的文档结构 语法和注释、dom4j的下载与配置 应用dom4j创建、解析和修改XML)
185 0
Java Web之JSP操作XML(XML的文档结构 语法和注释、dom4j的下载与配置 应用dom4j创建、解析和修改XML)
|
JavaScript
vue动态加载的菜单报错Cannot find module xxxxxx 与the request of a dependency is an expression 解决方法
vue动态加载的菜单报错Cannot find module xxxxxx 与the request of a dependency is an expression 解决方法
618 0
|
存储 Java 容器
JSP第五篇【JSTL的介绍、core标签库、fn方法库、fmt标签库】(三)
JSTL作为最基本的标签库,提供了一系列的JSP标签,实现了基本的功能:集合的遍历、数据的输出、字符串的处理、数据的格式化等等!
103 0
JSP第五篇【JSTL的介绍、core标签库、fn方法库、fmt标签库】(三)
|
Java
JSP第五篇【JSTL的介绍、core标签库、fn方法库、fmt标签库】(二)
JSTL作为最基本的标签库,提供了一系列的JSP标签,实现了基本的功能:集合的遍历、数据的输出、字符串的处理、数据的格式化等等!
74 0
JSP第五篇【JSTL的介绍、core标签库、fn方法库、fmt标签库】(二)
|
XML Java 数据格式
JSP第五篇【JSTL的介绍、core标签库、fn方法库、fmt标签库】(一)
JSTL作为最基本的标签库,提供了一系列的JSP标签,实现了基本的功能:集合的遍历、数据的输出、字符串的处理、数据的格式化等等!
120 0
JSP第五篇【JSTL的介绍、core标签库、fn方法库、fmt标签库】(一)
|
Java
JSP第五篇【JSTL的介绍、core标签库、fn方法库、fmt标签库】(四)
JSTL作为最基本的标签库,提供了一系列的JSP标签,实现了基本的功能:集合的遍历、数据的输出、字符串的处理、数据的格式化等等!
137 0
JSP第五篇【JSTL的介绍、core标签库、fn方法库、fmt标签库】(四)
|
Java
JSP第五篇【JSTL的介绍、core标签库、fn方法库、fmt标签库】
什么是JSTL JSTL全称为 JSP Standard Tag Library 即JSP标准标签库。 JSTL作为最基本的标签库,提供了一系列的JSP标签,实现了基本的功能:集合的遍历、数据的输出、字符串的处理、数据的格式化等等! 为什么要使用JSTL EL表达式不够完美,需要JSTL的支持!在JSP中,我们前面已经用到了EL表达式,体会到了EL表达式的强大功能:使用EL表达式可以很方便地引用一些JavaBean以及其属性,不会抛出NullPointerException之类的错误!但是,EL表达式非常有限,它不能遍历集合,做逻辑的控制。
1352 0