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 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog