通过html页面的“登录”按钮,输入账号密码(数据库里有),登录成功@Action("ajaxLogin")
public String ajaxLogin() {
user = userService.chick(user);
if(null!=user){
session.put(TbConstants.USER, user);
Struts2Utils.renderJson("登陆成功!");
}else{
Struts2Utils.renderJson("登陆失败!");
}

return null;
}
TbConstants.USER 这个不用管,就当做Key就好,Value就是后面的user对象了
整个登录判断是通过ajax来的,现在的问题是 if(null!=user){
session.put(TbConstants.USER, user);
Struts2Utils.renderJson("登陆成功!");
}else{
Struts2Utils.renderJson("登陆失败!");
}

怎么在html页面上显示user.userName也就是用户名了
  
求高手瞧瞧,在线等待中...... 100分

解决方案 »

  1.   

    如果是jsp的html页面的话
    $(sessionScope.TbConstants.USER.userName) 如果是静态html的话
    你需要通过ajax获取用户名后再进行显示
      

  2.   

    session.put(TbConstants.USER, user);?
    你在页面上怎么显示?
    按下面的试试session.put("TbConstants.USER", user);
    页面上
    <%=out.print(request.getParameter("TbConstants.USER"))%>; 
    看能否有结果
      

  3.   

    在页面上嵌入java代码
    <%
      User user =(User)request.getSession().getAttribute("TbConstants.USER")
      user.userName
    %>
    这样可以得到userName在页面上
      

  4.   

    或者在程序里request.getSession().setAttribute("USER", user);
    页面上
    ${sessionScope.USER.usrName }
      

  5.   


    没怎么看懂,放在session作用域的用request获取提交参数?页面上应该是 $(sessionScope.TbConstants.USER.userName)  或<%=out.print(((User)session.getAttribute("TbConstants.USER")).getUserName())%>
      

  6.   

    ${sessionScope['TbConstants.USER'].userName};   //如果TbConstants.USER是个常量
    或 <%
    ((UserBean) session.getAttribute(TbConstants.USER) ).getUserName())
    %>
    当年,武松斗杀西门庆后,潘金莲知道大祸临头,慌忙跑出来逃命,她想啊,这事全是西门庆给惹的,西门不吉利,往东门逃。最后发现没路了只得漂洋过海,在一个小岛上存身。肚子里的孩子出世了,几年过后,孩子长得又矬又矮,她知道这是武大郎的,可给孩子起个啥名儿呢?叫太郎吧。你不信?日本人有叫太郎、一郎的,从来没有叫大郎的,就因为武大郎是他们的祖宗。日本人的身材就是武大郎的遗传基因造成的。母子二人在岛上生活。那浪蹄子忍不住寂寞,打起儿子的主意,终于,母子俩成了好事,附近鱼船上的人们纷纷指责,那浪蹄子大骂:“俺儿子日的是本人,自产自销,管你们啥事 ”,于是到后来,大家伙儿就叫他们“日本人”了。孩子越养越多,太郎想,我何不成立一个国家,过一把当皇上的瘾。国家要有国旗,潘金莲一听,说道:“你爹是卖炊饼的, 就在被单上画个炊饼算了”,于是,国旗有了。为了老武家能交好运,又特地在旗子上写了四个大字:“武运长久”言犹不许,处处提防,删我原贴,阻我诗章,拒民忧国,致民崇洋,尔等如此,为虎作伥,百年之辱,犹忧心伤,毛谆邓嘱,何弃耳旁,污臣鼠辈,为乱朝纲,私囊腰包,鲜思守疆,哀我中华,魏征难举,痛我国防,再无陈汤,如今黄海,剑拔弩张,我朝无将,且退且让,日寇嚣张,占岛为王,本我故土,无权巡航,外蒙藏南,收复无望,南海西海,抗议协商,稀土矿藏,列强储藏,视我中华,尧舜禹汤,时至今日,日落夕阳,不孝子嗣,妄称富强,掩耳盗铃,一让再让,除了抗议,还是嘴仗,前已有虎,后聚群狼,再不清醒,国必危亡,侵我主权,撞我鱼船,捕我同胞,逼我亮剑,外交无果,情何以堪,鬼子横行,国无尊严,中华儿女,网吐真言,为国捐躯,死而无憾,亿万国民,跪请开战!日本警察惊问:贵国的军队呢?答:在维稳,又问:武警呢?答:忙周克华的事,那警察呢?在强拆,不是还有城管吗?在抓小贩,那贵国政府呢?在关心刘翔的脚伤。只剩下我们老百姓了。日本警察大怒:你们也太瞧不起我们日本军队了,全抓了。
      

  7.   

    贴源码了showUserLogin()是登录按钮的单击事件弹出下面的登录框这是js代码 // 登录的窗口
    function showUserLogin() {
    this.close();
    art
    .dialog( {
    id : 'lgoinForm',
    follow : document.getElementById('lgoin'),
    width : 200,
    title : '用户登录',
    content : '<form action="" method="post">'
    + '<table width="350" border="0">'
    + '  <tr>'
    + '    <td width="70" align="right">用户名:</td>'
    + '    <td width="280"><input type="text" id="login_userCode" /><span class="STYLE4" id="login_userCode_message" style="color: red"></span></td>'
    + '  </tr>'
    + '  <tr>'
    + '    <td align="right">密码:</td>'
    + '    <td><input type="text" id="login_userpass" /><span class="STYLE4" id="login_userpass_message" style="color: red"></span></td>'
    + '  </tr>'
    + '  <tr>'
    + '    <td colspan="2" align="center"><input type="button" onclick="loginUser();" value="登陆" />'
    + '     <input type="reset" name="button" value="注册" onclick="showRegUser();" /></td>'
    + '  </tr>' + '</table>' + '</form>'
    });
    }loginUser(),输入账号密码,点击登录按钮的事件,调用ajax
    // ajax用户登陆
    function loginUser() {
    var login_userCode = document.getElementById("login_userCode").value;
    if (login_userCode == "" || login_userCode == null) {
    document.getElementById('login_userCode_message').innerHTML = "您还没有输入用户名!";
    return false;
    } else {
    document.getElementById('login_userCode_message').innerHTML = "";
    } var login_userpass = document.getElementById("login_userpass").value;
    if (login_userpass == "" || login_userpass == null) {
    document.getElementById('login_userpass_message').innerHTML = "您还没有输入密码!";
    return false;
    } else {
    document.getElementById('login_userpass_message').innerHTML = "";
    } var urls = "ajaxLogin.do?user.userCode=" + login_userCode
    + "&user.userPassword=" + login_userpass;
    xmlhttp = null;
    if (window.XMLHttpRequest) {// code for Firefox, Opera, IE7, etc.
    xmlhttp = new XMLHttpRequest();
    } else if (window.ActiveXObject) {// code for IE6, IE5
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    if (xmlhttp != null) {
    xmlhttp.onreadystatechange = loginUser_Change;
    xmlhttp.open("post", urls, true);
    xmlhttp.send(null);
    }
    }在通过url里面的ajaxLogin.do,到Action中去查var urls = "ajaxLogin.do?user.userCode=" + login_userCode
    + "&user.userPassword=" + login_userpass;@Action("ajaxLogin")
    public String ajaxLogin() {
    user = userService.chick(user);
    if(null!=user){
    session.put(TbConstants.USER, user);
    Struts2Utils.renderJson("登陆成功!");
    }else{
    Struts2Utils.renderJson("登陆失败!");
    }

    return null;
    }到这里了, 
    就是在htnl页面中去取session的值了(user.userName)
      

  8.   

    基本看出你想要什么了,因为你是要在html页面里显示服务端输出的内容,所以楼上那么多用服务端的代码直接输出内容是不可行的。
    思路是这样:
    1、通过异步Ajax调用服务端
    2、服务端输出结果(用response输出就可以了,可以看出你是打算用JSON格式输出,将要返回给客户端的内容打包成JSON)
    3、html页面获取服务端输出的结果,解析其内容输出到具体地方(也就是你要的user.userName)
      

  9.   

    楼主为什么不自己上网搜呢?看你想在jsp如何展示吧。可以往request里面装数据。
    http://blog.csdn.net/qianzhiyong111/article/details/6617967
      

  10.   

    例如:
    TbConstants.USER = "xxx"jsp里
    <%=((User)session.getAttribute("xxx")).getUserName()%>先试试看。
      

  11.   


    别忘了
    <%@ page import="xxx.xxx.User"%>
      

  12.   

    关键是,这不是jsp,是html静态页面,从服务器端带过来的数据全是ajax显示的
      

  13.   

    <%
      User user =(User)request.getSession().getAttribute("TbConstants.USER")
      user.userName
    %>这个应该是可以的
      

  14.   

         亲,但实际上是不行的,这个在jsp上完全可以,但是在html上就不OK了
      

  15.   

    ${sessionScope.TbConstants.USER.userName}
      

  16.   


    算是酱子了,但是这个怎么打包成json到页面输出啊 @Action("ajaxLogin")
    public String ajaxLogin() {
    user = userService.chick(user);
    if(null!=user){
    session.put(TbConstants.USER, user);
    Struts2Utils.renderJson("登陆成功!");
    }else{
    Struts2Utils.renderJson("登陆失败!");
    }

    return null;
    }
    这个方法别的地方还在用,就直接到jsp,在jsp上可以直接拿到里面的对象
    这样问题就来了,怎么打包成json,又不影响别滴地方。
      

  17.   

    在页面上嵌入java代码
    <%
      User user =(User)request.getSession().getAttribute("TbConstants.USER")
      user.userName
    %>
    这样可以得到userName在页面上
      

  18.   

    在不行你就在html也面放个<span id="userName"></span>然后用你下面的回调方面把用户名写到span中
    //3 处理返回信息函数
    function loginUser_Change() {
      //alert(xmlhttp.readyState);
         if (xmlhttp.readyState == 4) { // 判断对象状态
             if (xmlhttp.status == 200) { // 信息已经成功返回,开始处理信息
                 $("#userName").html(xmlhttp.responseText);               
                } else { //页面不正常
                    window.alert("您所请求的页面有异常。");
                }
            }
    }
      

  19.   

    Action改为
    @Action("ajaxLogin")
        public void ajaxLogin() {
            user = userService.chick(user);
            if(null!=user){
                session.put(TbConstants.USER, user);
                //返回登录成功的json串
                Struts2Utils.renderJson("{result:'succes',userName:'"+user.getUserName()+"'}");
            }else{
                Struts2Utils.renderJson("{result:'fail'}");
            }
        }页面上的xmlhttp.onreadystatechange = loginUser_Change;中的loginUser_Change不知道你怎么定义的,可以改成这样xmlhttp.onreadystatechange = function(){
        if(xmlhttp.readyState == 4 && xmlhttp.status == 200){
            var respStr = xmlhttp.responseText;
            var oRet = eval('('+respStr+')');
            if(oRet.result == 'succes'){
                alert("登录成功!"); //这里获得了登录成功后的用户名
                //假设你的页面是上有个<span id="user_name"></span>
                document.getElementById("user_name").innerTEXT = oRet.userName;
            }else{
                alert('登录失败!');
            }
        }
    }
      

  20.   

    设置下session属性  直接通过session取得username的值
      

  21.   

    弱弱问一句,heml和html有什么区别?