ActionForm中可不可以获得session的值?

wweijie 2004-09-21 09:17:04
ActionForm中可不可以获得session的值?
怎么获得呀?
...全文
157 点赞 收藏 17
写回复
17 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
qiyao 2004-10-22
<--------------高手看过来! 能不能搞定这个?
http://community.csdn.net/Expert/topic/3472/3472337.xml?temp=.2961847
回复
DarkXie 2004-10-22
ActionForm当然能获得SESSION的
方式1:
public ActionErrors validate(ActionMapping actionMapping, HttpServletRequest httpServletRequest) {
/**@todo: finish this method, this is just the skeleton.*/
return null;
}
public void reset(ActionMapping actionMapping, HttpServletRequest httpServletRequest) {
}
这两个方法中都有httpServletRequest对象
可以使用String p1 = (String) request.getSession().getAttribute("pppp");
来获得一个SESSION中的对象,你必须调用这2个方法才有用
方式2:继承ActionForm,生成新的ACTIONFORM来使用,不过这样做没有什么太大的意思
问题分析:
ActionForm对表单的一个映射,它本来就存在于SESSION中,就MVC的理论来说,ActionForm应该属于视图这一部分,它的作用主要就是将视图V中的表单数据传送到M中处理,然后再根据C来控制跳转,所以在ActionForm获得session看来是非常鸡肋的。如果你需要获得SESSION并处理它,建议在Action中来作。
以上分析只代表本人的看法,如果偏颇请指正,不胜感激!
回复
supersunyi 2004-10-22
呵呵,我一般把form比做一个数据接受器使用,要用session,去action吧,一样的啊,而且这样就不会是form程序太复杂了,条理有清晰,何必呢
回复
wyx_gritty 2004-10-22

public void reset( HttpServletRequest request,HttpSession session)这样将session对象当作一个参数传给ActioinForm ,你试试。
回复
wweijie 2004-10-21
to 红茶:如果你能解决我的问题,我给你100分
回复
xqi8 2004-10-20
up
回复
EdifierX 2004-10-14
不可以的。 就算可以也违背了MVC的模式
回复
yemao20 2004-10-14
up
回复
treeroot 2004-10-14
何苦呢,何必呢?
回复
jason_gy 2004-10-14
可以
回复
bluesky35 2004-10-14
struts-config.xml中也要做相应修改.
回复
beyond2002171 2004-10-14
可以,我以前做过struts项目,这么做过,不过你给得分有点少
回复
evo_vii 2004-10-13
不可以 session只有在servlet和jsp中获得
回复
wweijie 2004-09-21
部分带吗
public class UserForm extends ActionForm {

private String id;
private String username;
private String passwd;
private String name;
private String corpid;

public String getCode() {
return code;
}

public String getCorpid() {
return ....;//希望能在这里取得session中保存的值

}

............
回复
wweijie 2004-09-21
部分带吗
public class UserForm extends ActionForm {

private String id;
private String username;
private String passwd;
private String name;
private String corpid;

public String getCode() {
return code;
}

public String getCorpid() {
return ....;//希望能在这里取得session中保存的值

}

............
回复
fmzbj 2004-09-21
可以的啊:
public void reset(ActionMapping mapping, HttpServletRequest request) {

// Reset values are provided as samples only. Change as appropriate.



}

public ActionErrors validate(
ActionMapping mapping,
HttpServletRequest request) {

ActionErrors errors = new ActionErrors();
// Validate the fields in your form, adding
// adding each error to this.errors as found, e.g.

// if ((field == null) || (field.length() == 0)) {
// errors.add("field", new org.apache.struts.action.ActionError("error.field.required"));
// }
return errors;

}

不都有request的嘛,request.getSession()就OK了。。。
回复
wweijie 2004-09-21
没有request呀
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2004-09-21 09:17
社区公告
暂无公告