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

wweijie 2004-09-21 09:17:04
ActionForm中可不可以获得session的值?
怎么获得呀?
...全文
205 17 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
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呀

81,122

社区成员

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

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