分页展示数据时,action重定向无法加载数据列表
2017-10-25 17:33
357 查看
今天使用ssh编写OA项目的时候,在写列表展示用户数据的的时候,在写到修改用户数据的时候,修改完数据点击提交的时候,数据可以进行修改,但是页面无法重定向到列表展示页面,在网上查找了很多资料,有的说是要改struts2的改版本将2.5的改成2.3的版本,但是我的项目中是配合maven开发的,所以更改起来会有好多问题,有的人也说删掉某一个包,具体是什么忘了,但是我查找了我自己的包,并没有导入这个包,最后在尝试着解决的过程中,发现了几个问题
问题一:在struts.xml的配置文件中,重定向是忽略的action的方法名,而是以返回值做了重定向的条件,所以无法找到,报异常,
![](file:///C:/Users/ADMINI~1/AppData/Local/Temp/enhtmlclip/Image.png)
![](http://img.blog.csdn.net/20171025174825288?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvWVpGMTE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
问题二:在重定向的目标action中需要用到一个参数,开始没有传参,导致再 UserInfoDaoImpl 类中查询数据的方法执行异常,无法加载页面
![](http://img.blog.csdn.net/20171025174910658?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvWVpGMTE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](file:///C:/Users/ADMINI~1/AppData/Local/Temp/enhtmlclip/Image(1).png)
一开始将这个参数写成静态的数字 1 ,虽然可以加载页面,但是不管在第几页点击进入的修改的操作,提交数据后豆浆会倒第一个页面,考虑到如果数据量过大的话,此功能不合理,所以放弃,开始思考如何将当前页作为参数传递到这里进行使用,但是在重定向的时候无法传递数据,思考过后,决定将当前页的数值和要修改的用户的ID一起存入到域对象中,
具体操作如下:
![](http://img.blog.csdn.net/20171025174924648?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvWVpGMTE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](file:///C:/Users/ADMINI~1/AppData/Local/Temp/enhtmlclip/Image(2).png)
然后在对应的action中获取到域对象里面存储的值,拿到存储的用户id和当前页的数值后,去数据库中查询数据,然后与当前页的数值在一起存入到域对象中,这样在修改页面中就有了当前页的数值,这里做了一次当前页数值得转存,没有测试此步骤是否省略,
![](http://img.blog.csdn.net/20171025174939748?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvWVpGMTE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](file:///C:/Users/ADMINI~1/AppData/Local/Temp/enhtmlclip/Image(3).png)
点击修改页面的按钮会触发此action,
![](http://img.blog.csdn.net/20171025175032036?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvWVpGMTE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](file:///C:/Users/ADMINI~1/AppData/Local/Temp/enhtmlclip/Image(4).png)
最后在struts.xml配置文件中使用,
![](http://img.blog.csdn.net/20171025175048032?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvWVpGMTE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](file:///C:/Users/ADMINI~1/AppData/Local/Temp/enhtmlclip/Image(5).png)
update的action代码如下:
![](http://img.blog.csdn.net/20171025175105568?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvWVpGMTE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](file:///C:/Users/ADMINI~1/AppData/Local/Temp/enhtmlclip/Image(6).png)
加载列表页面所触发的action如下:我们加载列表的时候是进行了分页加载,所以需要当前页
![](http://img.blog.csdn.net/20171025175120209?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvWVpGMTE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](http://img.blog.csdn.net/20171025175207966?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvWVpGMTE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](http://img.blog.csdn.net/20171025175221507?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvWVpGMTE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](file:///C:/Users/ADMINI~1/AppData/Local/Temp/enhtmlclip/Image(7).png)
整个过程仍然存在问题,有的地方可以进行优化,这里不再补充说明,之所以写这篇文档,是因为网上查了好多教程都无法解决我的问题,在这里我把我的解决方案提出来,希望帮到更多遇到此类问题的人,欢迎大家评论和转载,标明出处即可,希望大神给予指点,提出更好的建议
![](file:///C:/Users/ADMINI~1/AppData/Local/Temp/enhtmlclip/Image(8).png)
问题一:在struts.xml的配置文件中,重定向是忽略的action的方法名,而是以返回值做了重定向的条件,所以无法找到,报异常,
![](file:///C:/Users/ADMINI~1/AppData/Local/Temp/enhtmlclip/Image.png)
问题二:在重定向的目标action中需要用到一个参数,开始没有传参,导致再 UserInfoDaoImpl 类中查询数据的方法执行异常,无法加载页面
![](file:///C:/Users/ADMINI~1/AppData/Local/Temp/enhtmlclip/Image(1).png)
一开始将这个参数写成静态的数字 1 ,虽然可以加载页面,但是不管在第几页点击进入的修改的操作,提交数据后豆浆会倒第一个页面,考虑到如果数据量过大的话,此功能不合理,所以放弃,开始思考如何将当前页作为参数传递到这里进行使用,但是在重定向的时候无法传递数据,思考过后,决定将当前页的数值和要修改的用户的ID一起存入到域对象中,
具体操作如下:
![](file:///C:/Users/ADMINI~1/AppData/Local/Temp/enhtmlclip/Image(2).png)
然后在对应的action中获取到域对象里面存储的值,拿到存储的用户id和当前页的数值后,去数据库中查询数据,然后与当前页的数值在一起存入到域对象中,这样在修改页面中就有了当前页的数值,这里做了一次当前页数值得转存,没有测试此步骤是否省略,
![](file:///C:/Users/ADMINI~1/AppData/Local/Temp/enhtmlclip/Image(3).png)
点击修改页面的按钮会触发此action,
![](file:///C:/Users/ADMINI~1/AppData/Local/Temp/enhtmlclip/Image(4).png)
最后在struts.xml配置文件中使用,
![](file:///C:/Users/ADMINI~1/AppData/Local/Temp/enhtmlclip/Image(5).png)
update的action代码如下:
![](file:///C:/Users/ADMINI~1/AppData/Local/Temp/enhtmlclip/Image(6).png)
加载列表页面所触发的action如下:我们加载列表的时候是进行了分页加载,所以需要当前页
![](file:///C:/Users/ADMINI~1/AppData/Local/Temp/enhtmlclip/Image(7).png)
整个过程仍然存在问题,有的地方可以进行优化,这里不再补充说明,之所以写这篇文档,是因为网上查了好多教程都无法解决我的问题,在这里我把我的解决方案提出来,希望帮到更多遇到此类问题的人,欢迎大家评论和转载,标明出处即可,希望大神给予指点,提出更好的建议
![](file:///C:/Users/ADMINI~1/AppData/Local/Temp/enhtmlclip/Image(8).png)
![](file:///C:/Users/ADMINI~1/AppData/Local/Temp/enhtmlclip/Image(9).png)
相关文章推荐
- ExtJS 4.2 树形结构请求后台数据无法展示子节点,而是没点击一次请求一次数据,无限请求加载所有的父节点元素
- iphone利用线程实现数据的加载,并展示在table列表中
- Android_仿支付宝账单列表(头部停留及分页数据加载)
- iphone利用线程实现数据的加载,并展示在table列表中
- 聊天列表在reloadData时无法成功加载数据
- 封装项目整体架构,访问网络数据,展示列表数据,根据图片数量的不同来多条目加载,使用Universal-Image-Loader进行图片加载
- Android_仿支付宝账单列表(头部停留及分页数据加载)
- bboss taglib 通过数据加载器获取数据的分页/列表标签
- 点击侧滑任何一个 菜单项,请求网络数据展示在主界面的xlistview中且实现下拉刷新效果和上拉加载的分页加载数据效果
- iPhone利用线程实现数据的加载,并展示在table列表中
- iphone利用线程实现数据的加载,并展示在table列表中
- 虚拟列表控件---加载大数据行
- mui上拉加载通过ajax获取数据,实现分页
- JSP通过action跳转时css和js和swf无法加载问题
- Android 加载列表数据
- 关于数据:先加载还是先展示?
- extjs combobox分页加载数据不显示
- WinForm程序虚拟分页(实时加载数据)
- Android 中 ListView 分页加载数据
- 下拉刷新上拉加载数据列表实现(Kotlin版)