奇怪:JSF 刷新页面时,居然调用了上一页面的写数据库操作?

Orient036 2008-03-28 06:00:46
环境:
JavaEE 5:JSF(RichFaces)、JPA
NetBean 6
GlassFish V2

目的:
我有两个页面A.jsp、B.jsp,分别用BeanA和BeanB做为后台Managed Bean,
A.jsp调用BeanA,执行了写数据库操作,然后跳转到B.jsp,B.jsp从数据库中读出数据,进行显示。

问题:
1 B.jsp绑定的个别数据库字段无法显示。(A.jsp刚写进去的,但是数据库中有数据)
2 最严重的是,此时刷新B.jsp时,将会执行A.jsp的写数据库操作,数据是一摸一样的(除了用序列生成的主键)。



我在网上找到一篇文章,好像是同样的问题,但是不知道如何使用。
http://kbase.nou.com.cn/kbase/personalKBase/personalArticle!articleRead.action?klId=2763

请大家帮我分析下。

谢谢!
...全文
128 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
淡了的风 2008-04-07
  • 打赏
  • 举报
回复
自己写个flag控制下或存个session做判断。
淡了的风 2008-04-07
  • 打赏
  • 举报
回复
自己写个flag控制下或存个session做判断。
DiligencyMan 2008-03-30
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 laodizhuq 的回复:]
你的页面是从A.jsp执行后跳转到B.jsp的,那么你刷新时,浏览器会重复上次执行,从A.jsp提交开始跳转到B.jsp
而你写入数据是在A.jsp提交后处理的,
所以会重复写入数据
[/Quote]

正解,说的不错,浏览器刷新有时并不是刷新这个页面,而是刷新在这个页面的上个操作(也就是最近一次跳转到这个页面的操作)!
Orient036 2008-03-30
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 laodizhuq 的回复:]
你的页面是从A.jsp执行后跳转到B.jsp的,那么你刷新时,浏览器会重复上次执行,从A.jsp提交开始跳转到B.jsp
而你写入数据是在A.jsp提交后处理的,
所以会重复写入数据
[/Quote]

那怎么解决呢?
nanjg 2008-03-29
  • 打赏
  • 举报
回复
Error 500--Internal Server Error

java.lang.OutOfMemoryError

laodizhuq 2008-03-29
  • 打赏
  • 举报
回复
你的页面是从A.jsp执行后跳转到B.jsp的,那么你刷新时,浏览器会重复上次执行,从A.jsp提交开始跳转到B.jsp
而你写入数据是在A.jsp提交后处理的,
所以会重复写入数据

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧