Hello,friends!
loocao
myJavaWorld
BlogJava
首页
新随笔
联系
聚合
管理
13 Posts :: 0 Stories :: 0 Comments :: 0 Trackbacks
常用链接
我的随笔
我的评论
我的参与
留言簿
(1)
给我留言
查看公开留言
查看私人留言
随笔档案
(13)
2008年12月 (3)
2008年9月 (4)
2008年8月 (2)
2008年7月 (4)
Blog
phyeas
javascript
DOJO中国
Ajax
javascript教程|jQuery教程|Ajax教程|extjs
搜索
最新评论
阅读排行榜
1. [导入]使用MySQL的limit必须写order by....(2841)
2. [导入]关于Struts的BeanUtils.populate与LazyDynaBean联用(1114)
3. [导入]使用Struts2+Spring注意Action的作用域(773)
4. [导入]NetBeans安装Facelet插件失败的原因及解决方案(524)
5. [导入]JAVA语音聊天程序 - 服务器的设计(二)(363)
评论排行榜
1. [导入]HTML编辑器FCKeditor使用详解(0)
2. [导入]将解压版的Tomcat设为windows服务(0)
3. [导入]文件过滤器FileFilter(0)
4. [导入]开源消息平台的构想(初始阶段)(0)
5. [导入]NetBeans安装Facelet插件失败的原因及解决方案(0)
[导入]使用Struts2+Spring注意Action的作用域
今天写coding的时候发现一个问题。郁闷。Action执行过一次之后,第二次请求竟不再次执行Action。这让人非常郁闷。
代码是这样的:
public
String login()
{
UserinfoDto user
=
biz.login(account, password);
if
(user
==
null
)
{
//
TODO 用户名/密码错误
this
.addActionError(
"
用户名/密码错误,请重新登陆。
"
);
return
"
input
"
;
}
//
TODO 登陆成功
request.setAttribute(
"
user
"
, user);
return
"
loginSuccess
"
;
}
biz是利用Spring注入的业务对象。如果登陆成功则没什么。但是一次登陆失败后。以后的每次都登陆失败。恼火。改用ActionMessage。可以了。但是每失败依次都会增加一个message。我才想到。原来Action并没有被消除。可能Struts2对已经有ActionError的对象就不再访问。而直接返回错误页面。这里我试了一下。第一次发生错误之后能返回你定义的页面。而以后每次访问则返回"input",不会再次执行Action。所以。而这一切都是因为Action是被 Spring创建的。如果是XWork创建的。每次请求它都会创建一个新的Action。就不会发生以上问题。因为新创建的 Action不会预先添加ActionError。解决方案是将Action放在request作用域中。具体做法在
http://blog.csdn.net/wxy_G/archive/2008/01/29/2071662.aspx
有介绍。我就不再赘述了。
phyeas
2008-07-28 19:56
发表评论
文章来源:
http://www.blogjava.net/phyeas/archive/2008/07/28/218160.html
posted on 2008-07-28 19:56
loocao
阅读(773)
评论(0)
编辑
收藏
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
知识库
C++博客
博问
管理
Powered by:
BlogJava
Copyright © loocao