dontide 2009-09-02 15:17
浏览 189
已采纳

Ext+truts2 登陆

我现在想用Ext+struts2做一个用户登陆,我的需求是从界面上面提交到Action,Action得到相应的用户数据后保存到Session里面,最后返回到Ext界面,界面的JS文件是导入到html网面里面的,我怎么才能在JS文件里面得到Session里面的数据,而且js代码不能写在html里面,因为多个页面用到该Session,界面代码如下
[code="java"]
var loginform = new Ext.FormPanel({
labelAlign : 'right',
title : '城市管理与监测平台',
buttonAlign : 'right',
width : 260,
frame : true,
plain : true,
defaultType : 'textfield',
labelWidth : 50,
labelSeparator : ':',
bodyStyle : 'padding:5px 5px 0',

    items : [{
        fieldLabel : '用户名',
        name : 'name',
        width : 125,
        allowBlank : false
    }, {
        fieldLabel : '密码',
        name : 'password',
        inputType : 'password',
        width : 125,
        allowBlank : false
    }, fradio],
    buttons : [{
        text : '登陆',
        handler : function() {
            if (loginform.form.isValid()) {
                loginform.getForm().submit({
                    url : 'member/login_loginUser.action',
                    waitMsg : '正在验证登陆信息,请稍后......',
                    failure : function() {
                        alert("sadf");
                        Ext.Dtg.session = '<%(User)session.get("login")%>';
                        alert("进来了,数据为:"+d);
                        d = '<%(User)session.get("login")%>';
                        alert("执行后得到数据" + d);
                        Ext.MessageBox.alert('信息', '登陆失败,请与管理员联系!');

                    }
                });
            }
        }
    }, {
        text : '重置',
        handler : function() {
            loginform.getForm().reset();
        }
    }]
})

[/code]

后台代码如下:
[code="java"]
public String loginUser(){
String menu = "[";
System.out.println(user);
user = memberService.getLoginUser(this.getName(), this.getPassword());
System.out.println(user);
if(user != null){
System.out.println(user.getMemberNo() + " " + user.getType());
List list = memberService.getMemberRightsByMemberId(user.getId());
for(MemberRight mr : list){
menu += "['"+mr.getResource().getName()+"', '"+mr.getResource().getResourceURL()+"'],";
System.out.println("菜单:" + mr.getResource().getName() + " URL地址:" + mr.getResource().getResourceURL());
}
menu = menu.substring(0, menu.lastIndexOf(","));
menu += "]";
System.out.println(menu);
Map session = ActionContext.getContext().getSession();
session.put("login", user);
} else {

    }
    return SUCCESS;
}

[/code]
类loginUser里面得到的数据很正常。
这个问题困扰我很久了,希望大家能帮帮我,先谢谢了!

  • 写回答

6条回答 默认 最新

  • iteye_10013 2009-09-02 15:32
    关注

    不建议你把jsp的写在js里面...

    应该在jsp中写:
    [code="html"]

    //这段js要在你另一个js的前面 var login= '<%=(User)session.get("login")%>';

    [/code]

    然后在你的js里面就可以调用这个变量了
    Ext.Dtg.session = login;

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料