当前位置: 代码迷 >> Java相关 >> SSH做登录成功,但拿不到当前用户名?解决方案
  详细解决方案

SSH做登录成功,但拿不到当前用户名?解决方案

热度:9836   发布时间:2013-02-25 21:51:56.0
SSH做登录成功,但拿不到当前用户名???
这个是action用户登录的方法:
Java code
 public ActionForward index(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response){           UserForm userForm=(UserForm)form;           TblUser user=biz.getLogin(userForm.getUser());           String gotoPage="";           if(user!=null){                 request.getSession().setAttribute("user",user);                            gotoPage="index";           }else{              request.setAttribute("message","对不起!您输入的密码有误!");              gotoPage="login";           }           return mapping.findForward(gotoPage);       }

这就是登录成功后显示的页面取值部分:
Java code
<marquee direction="left">         <em> 管理员:${user.userName} 您好,感谢登陆后台管理系统</em>         </marquee>

求高手们看看,有没有问题啊,就是拿不到值。打断点user里面都有值,但就是拿不出来。谢谢了。。。。


------解决方案--------------------------------------------------------
session要用sessionScope.user.userName吧
------解决方案--------------------------------------------------------
${sessionScope.user.userName}
------解决方案--------------------------------------------------------
EL表达式是默认从page范围开始找的
------解决方案--------------------------------------------------------
设置struts配置文件中对应action的属性: scope="session"
------解决方案--------------------------------------------------------
request.setAttribute("user",user);
------解决方案--------------------------------------------------------
lz既然说后台打印能得到user的值,但页面上又不显示,可能是你的web配置文件的 service的版本太低,像你用${}拿值的话,必须是版本2.4或以上的,像<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">这个版本是2.4的可以拿值,不知道lz是不是这个问题
------解决方案--------------------------------------------------------
探讨
}else{
request.setAttribute("message","对不起!您输入的密码有误!");
gotoPage="login";
}
return mapping.findForward(gotoPage);
只要是值,都拿不到。就像这个message在页面也拿不到,它那个消息框也只显示“message”没有别的内容。哎,真不知道是什么情况,什么值都拿不……

------解决方案--------------------------------------------------------
lz你存到session看看,我上面是从session拿值,你存入request,说不定你重定向了才没值,或者配置文件搞成重定向
------解决方案--------------------------------------------------------
marquee direction="left">
<%
TblUser user = (TblUser)request.getSession().getAttribute("user") ;
%>
<%=user.toString()%> <!--看看有没有结果?-->
<em> 管理员:${user.userName} 您好,感谢登陆后台管理系统</em>
</marquee>


------解决方案--------------------------------------------------------
探讨
把值存入reuqest,在后台用request能拿出来,但是在前台页面拿不出来啊?现在的问题是后台有数据
前台就是怎么也拿不出来,就是我刚才说的,连message里面的都拿不出来,哎。。。。。。。。。。。。。。求解。。。。。。。。。。

------解决方案--------------------------------------------------------
代码没问题 我怀疑你的页面支持EL表达式吗,
------解决方案--------------------------------------------------------
Java code
 public ActionForward index(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response){           UserForm userForm=(UserForm)form;           [color=#FF0000]System.out.println(userForm.getUserName());[/color]           //试试输出的是什么           TblUser user=biz.getLogin(userForm.getUser());           String gotoPage="";           if(user!=null){                 request.getSession().setAttribute("user",user);                            gotoPage="index";           }else{              request.setAttribute("message","对不起!您输入的密码有误!");              gotoPage="login";           }           return mapping.findForward(gotoPage);       }
  相关解决方案