chinahnzhou 2010-04-09 13:22
浏览 316
已采纳

struts2中session在不同action中的使用

大家好,我遇到一个这样的问题,希望大家能帮我。

我的意图很简单,在登录的action中,把管理员的用户名(或者管理员用户对象)装入session,然后在操作其他action时将这个用户名取出来,插入数据库,因为数据库每个表都有个字段“修改者”,修改者对应的值就是用户名了,所以几乎要在每个action中都要调用session。

我在网上找了,大多数是两种方法,我用的是这种方法:
public class AdminAction extends ActionSupport implements SessionAware{
//省略代码....
private Map session;

public Map getSession() {
return session;
}
public void setSession(Map session) {
this.session = session;
}

在action中的Login方法我这样写:
//省略代码
Admin admin1=new Admin();
admin1.setAdminName(adminname);
admin1.setAdminPassword(adminpassword);
session.put(admin1,admin1);

System.out.println(session.get(admin1));

adminname和adminpassword是有值的
输出结果是:com.wckj.model.Admin@144b624

1.怎么输出adminname的值出来?
2.在其他action中要怎样才能取到adminname的值呢?

  • 写回答

1条回答

  • 有意义每一天 2010-04-09 15:04
    关注

    可以不继承SessionAware接口,我个人不喜欢这种方式,其实Struts2把Servlet对象都封装了,将值存入Session中时直接用ActionContext.getContext.getSession.put("admin1", admin1);即可,然后在其他Action中用ActionContex.getContext.getSession.get("admin1")取得的就是admin1这个对象,然后获取adminname和adminpassword就不用我说了吧

    再回答楼主的第一个问题:System.out.println(session.get(admin1)); 这句代码中session.get(admin1)获取的是admin1对象,要获取adminname的值,当然还需要用getAdminName()方法啦,即System.out.println(session.get(admin1).getAdminName())

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 arduino控制ps2手柄一直报错
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 求chat4.0解答一道线性规划题,用lingo编程运行,第一问要求写出数学模型和lingo语言编程模型,第二问第三问解答就行,我的ddl要到了谁来求了
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题
  • ¥15 Visual Studio问题
  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题