用struts,某一个用户已登录,我要在几个页面上用到该用户的一些信息比如姓名,怎样做呢,是不是要访问数据库,能不能贴代码段出来呢。非常急!!谢谢!

解决方案 »

  1.   

    在你的登录Action类里面保存用户信息: 
    HttpSession session=request.getSession();
    session.setAttribute("object",对象);然后在jsp页面获取:
    Object obj=(对象)session.getAttribute("object");
      

  2.   

    1楼的朋友,提示说request can't be resolved.登录的Action类是LoginAction类,你人 session.setAttribute("object",对象);中的对象是LoginAction类的一个对象吗?然后在jsp页面获取到一个obj,但我还要该用户的其他信息,比如年龄等,应该怎样做?
      

  3.   


    嗯。把登录的用户名在session里。然后以后的页面,你要什么信息,你根据着这个session里的用户名去获取它的相对应的信息。
      

  4.   

    “但我还要该用户的其他信息,比如年龄等”
    系统中你应该有个业务对象来描述用户吧,比如定义一个类 User,类里面有成员变量:名字,性别,年龄等等。登录的时候等到这个对象然后放session里。
      

  5.   


    你用这个对性去取你的所需要的东西呀,因为你在对象里面封装好这个对象的所有的属性,只要在object.对应的属性名就可以啦
      

  6.   

    你登录后,你把你的用户名放在session里。在以后的页面上,你先去获得这个登录的时候放在session里的用户名。然后根据这个用户名去取得你要的相对应的信息。public Users getUserByUsername(String username) 
    {
    tx=session.beginTransaction();
    Query query=session.createQuery("from Users where username=:username");
    query.setString("username",username);
    Users user=(Users)(query.list()).get(0);
    tx.commit();
    HibernateSessionFactory.closeSession();
    return user;
    }
    这个只是一个参考。
      

  7.   

    你如果是根据用户登录信息来取出用户详细信息并且每个页面都需要显示用户详细信息的话,那么建议你只取一次,将取出的值放入到session中,这样就避免了每次都练数据库,浪费资源的情况。action类中(以年龄为例)
    int age = ……;//通过连接数据库的代码获取年龄
    HttpSession session=request.getSession(); 
    session.setAttribute("nianling", age); jsp页面中
    <%
    String age = session.getAttribute("nianling");
    %>
    将取到的值放到相应的位置就好了!
      

  8.   

    如果用到得属性多
    就把对象存到session中。
    一般就存个名字和id。
      

  9.   

    在你登陆的action类中通过session把信息设置进去。再需要的页面再通过session取出来。
      

  10.   

    登陆之后,将用户信息封装成对象,并将其保存到session里面。在各页面就可以通过EL表达式来取值了。例如: ${user.username}
      

  11.   

    13楼说的不错,哪里需要这么麻烦呀..
    而且如果是struts的话,在action类里面写request.getSession().setAttribute("nianling", age);这种代码,是很弱智的,因为这并不是struts的精髓啊.
    你不是有form吗,form就是像一个实体类一样的存在,你的那些字段应该都放在form里才对,其实这个form就是一个已封装好的对象放在session中,这个在建form时就已选定好...
     在建form时,如下代码自动生成
    1.想看form是否建成功,只需看一下struts-config.xml的source里是不是有如下类似的代码:
      <action
          attribute="userForm"//这是就是把form做为对象写在session里的名字相当于session.seAttribute("userForm",form的对象)
          input="/index.jsp"
          name="userForm"
          path="/allList"
          scope="session"//这里我用的是request,你可以选用session
          type="com.zfxx.action.AllListAction"
          validate="false">
          <forward name="zflist" path="/allList.jsp" />
        </action>然后在jsp页面就可以通过er表达式直接调用了哦:${userForm.username},字会自动到session中去找
    不会er表达式可以通过jsp代码直接调用:<%=(from类型)session.getAttribute("userForm").getUsername() %>