`
赵大恩
  • 浏览: 7426 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

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里
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics