Struts中display标签使用注意事项

display tag用了几次,的确方便好多,基本上可以很好的实现分页功能了,而且还可以进行排序,但在初次使用的时候还是为遇到一些小问题(但好的东西,再麻烦点还是值得采用的),下面是我用display tag时遇到的一些问题:

(首先那些必要的加apache的commons-lang和standard包以及web.xml中配置filter是正确的)

1.java.lang.NoClassDefFoundError: org/apache/commons/collections/IteratorUtils

这个原因是没有引入 commons-collections.jar包导致的,因为在普通的struts项目中这个包不是必须 的,所以很容易被忽视,但用display标签的时候一定要加入,下载地址http://www.java2000.net/download/?filename=%2Fjar%2Fcommons/commons-collections.jar

2.java.lang.NoClassDefFoundError: org/apache/commons/beanutils/NestedNullException

这个原因是和commons-beanutils.jar包有关系,我们在做struts项目的时候一定会加入这个包的,我在这个包里也找到了NestedNullException.class类,但执行的时候就是报找不到NestedNullException.class的错误,一度换了几个版本的commons-beanutils.jar,还是不行,后来我下commons-beanutils-1.7.0版本的包时,里面还附带了commons-beanutils-core.jar和commons-beanutils-bean-collections.jar两个包,把这两个也加入lib中后再运行程序就成功了,里面的机理不是很清楚(如果谁知道,一定要留言告诉我)

commons-beanutils-1.7.0下载地址http://d.download.csdn.net/down/304163/panxuan(是csdn上的,里面好多资源,大家以后找不到的东西,不烦来这里看看)

3.就是在运用分页功能的时候,首先显示的是第一页,再点其他页的时候显示Nothing found to display

这个和我对display标签理解不深刻有关,在使用display标签库进行分页功能的时候,有一个前提的:将被分成多个页面来显示的数据必须全部来自同一个集合,也就是说,得必须一次性的把整个结果集检索出来并保存到一个集合里(来自《深入浅出struts》一本对struts1讲的比较详细的书,有中文版的,学struts1可以作为参考书),我在写代码的时候,因为session比较吃资源,所以一般不用,这里我用了request.setAttribute(..),这样结果集必然只在requestScope内了,但点击下一个页面的时候将失去结果集,所以会显示Nothing found to display,解决放方法就是将检索到的结果集放到session范围内调用的时候为类似于下面的代码

<display:table name="sessionScope.test" cellspacing="0" cellpadding="0" pagesize="10">

总结

加入的包除了

commons-lang.jar

standar.jar

还有为:

commons-collections.jar

commons-beanutils.jsr

commons-beanutils-core.jar

commons-beanutils-bean-collections.jar

分页得将检索结果放到sessionScope里
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
说明:<br>一、含演示数据库建立脚本(较简单)<br>二、使用Struts、Hibernate和display超简单的实现了分页,你不用在页面上再写很多<%%>和很多判断,简单到只需要几行语句:<br><html:form method="post" action="/displayList"><br> <display:table name="lst" cellspacing="0" border="1" cellpadding="0" requestURI="displayList.do" export="true"><br> <display:column property="id" title="编号" /><br> <display:column property="name" title="名字" /><br> <display:column property="age" title="年龄" /><br> </display:table><br> <pag:pagination name="pv" requestUri="displayList.do"></pag:pagination><br></html:form><br>这就是全部语句,不用写任何代码。<br>三、由于使用display,所以自动实现了Excel | XML | CSV 的导出功能。<br>四、生成页面导航的样式是:<br>[首页/前一页] [后一页/尾页] 显示第1到1条 共3项 每页显示2项 共3页 第1页 GO<br>其每页显示2项的项操作人员可以随便改,“第1页”的页号可以随便改,操作相当的灵活。我看到的样式暂只这一种,我想在display应可以方便的改变导航样式,不行的话你就去修改display标签源码,想改成什么样就改成什么样。<br><br>心得:<br>一、今天才明白使用Hibernate还有一个好处,你可以随便改数据库,你可以一会用oracle,一会用sqlserver,一会用mysql,总之你写成的代码换一种数据库,最多就是改一下那几个xml文件,个人感觉这才是java一个地方编写到处运行呢。<br>二、明白了使用标签的好处。<br><br>另提示一点:<br>打开测试用“http://localhost:8080/StrutsHibernateDisplay/displayList.do”,如果直接打开list.jsp会告诉你没有数据的。<br><br>代码是wenlong342的,我只是稍做修改,然后写了上面的说明文字。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值