Struts2的Action里的把一个对象存入session中,请问如何在另一个action中获得对象中的属性值。

例如
生成对象的javabean()
Userbean(){
private String username;
private String usernumber;
get和set方法……

}
存入session的action(){
UserBean user = new UserBean();

ActionContext ac = ActionContext.getContext();
ac.getSession().put("user",user);
}
读取session中的aciton(){
在这里怎么取出session中user对象的username值?????

}

求大神知道,万分感谢!!!

第1个回答  推荐于2017-11-25
肯定是报空指针异常咯!

生成对象的javabean()
Userbean(){
private String username;
private String usernumber;
get和set方法……

}
存入session的action(){
UserBean user = new UserBean();
//************************************************************************************************
/*-----上面那行里new出的对象是空的!也没看到你为对象赋username值,然后把直接new出来的
空对象保存在session中,肯定取不到值啊! */
//************************************************************************************************

ActionContext ac = ActionContext.getContext();
ac.getSession().put("user",user);
}
读取session中的aciton(){
在这里怎么取出session中user对象的username值?????

}追问

那我给他值

存入session的action(){
UserBean user = new UserBean();
/************************************************/

user.setUsername("abc");
user.setUsernumber("123");
/************************************************/

ActionContext ac = ActionContext.getContext();
ac.getSession().put("user",user);
}

请问:

在读取session中的aciton(){

怎样读取到user中username的值呢?
}

追答

将Session中的值强转(转型)啊,如
HttpSession session=ServletActionContext.getRequest().getSession();//---得到Session
Userbean user=(Userbean) session.getAttribute("user"); //强转成Userbean对象!
user.getUsername //即可得到

本回答被提问者采纳
第2个回答  2012-11-17
你好:
ServletActionContext.getRequest().getSession().getAttribute("XXX");
还有其他的方法,可以自己去研究一下;

希望可以帮助到你.
第3个回答  2012-11-17
我都是这样获得的,action类实现SessionAware接口,在action中加入
private Map<String,Object> session;
public void setSession(Map<String, Object> session) {
this.session = session;
}
取session中的user对象就可以用Userbean user = (Userbean)session.get("user");
第4个回答  2012-11-17
ActionContext ac = ActionContext.getContext();

Map session = ac.getSession();
UserBean user = (UserBean) session.get("user");

在struts中,一个action类中的数据,怎样在另一个action类中获取???
意思是说1中的action处理一个请求时先判断当前action类是否有实例存在,有就用,没有就new。 而2中每次有请求都是new一个新的action,当然这都是默认行为。典型的购物车就是通过session存储的,也有application域等,其实request也可以存,不过必须是请求转发,这里又说到请求转发与重定向区别了,不在你...

关于struts2的 迭代出的值,然后怎样传到另一个jsp页面里啊?……_百...
id=xxx通过get的方法将ID传到ACtion中,然后通过数据库查找你想要得内容。也可以将页面的内容存储到session中在chang.jsp中用el表达式就可以得到,如果你不回用el表达式的话,也可以用<%session.get("")%>得到,session是JSP中的内置对象,不需要初始化 直接用就行。有问题追问。

strus2 的action类中定义同名变量,为啥能自动获取jsp的参数
struts2框架就是对servlet进行了一些封装,我们在servlet中获取页面参数的时候是调request.getParameter(“XXX”)来获取参数值,其实struts2也是这样的,只是struts2对你隐藏了这一步,你看不到而已。你在web.xml中可以看到我们配置了struts2的filter,在你访问一个页面的时候(比如manage\/userAdd.action)...

各位java前辈:1.在struts2中,在jsp页面是如何获取Action中值的?需要...
struts是采用ognl模型,就是对象关系模型,想要得到action中的值,首先的一点这个值要有set和get方法,在你请求action的时候,会重新生成一个action对象--》调用set方法给这个属性赋值,在jsp上展示用的是get方法,例如你有一个属性name需要展示,set、get方法写好后,在你请求的action中给name赋值,页面就...

struts2中我想把结果放入到session中ActionContext.getContext().getSe...
Struts2自己也封装了个 session,这个 session是个 Map类型的对象。所以和 Map 用法一样的,使用 put 存值,get 取值。用法是:\/\/ java \/\/ 保存到struts2 sessionActionContext.getContext().getSession().put("user", user);\/\/ jsp 用struts标签: 用EL表达式:${hello}用JSP代码:<%=session....

Struts2的作用域?在action中怎样得到session?
实现 ServletRequestAware接口就可以拿到 request,然后request.getSession();

struts2 action是单例的吗
struts2中action是多例的,即一个session产生一个action。struts 2的action是多实例的并发单例,也就是每次请求产生一个action的对象。原因是:struts 2的action中包含数据,例如你在页面填写的数据就会包含在action的成员变量里面。如果action是单实例的话,这些数据在多线程的环境下就会相互影响,例如造成...

struts2中action的作用
action就充当着控制器的作用,在它里面调用dao里面的方法,然后在返回一个字符串,调转到与字符串相对于的页面中。

Struts2中如何使用session与cookie
习惯使用session,在session里保存一个对象比如User,这个对象包含用户名,密码,权限。。。每个访问请求时,就取出user \/\/得到session对象 request.getHttpSession()\/\/保存session对象 session.setAtribute("name",user);\/\/name是你把user这个对象保存在session的名字 \/\/取出对象 user = session.getAtribute...

Struts2中 一个Action中的方法能共用类属性(全局变量)吗?
如果你用了spring的话,就把applicationcontext.xml里的该action的是scope从pototype=改为sinageton 意思是服务器只创建一个该action的实例,那么 这个test成员属性就是公用的了.

相似回答