我现在想用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里面得到的数据很正常。
这个问题困扰我很久了,希望大家能帮帮我,先谢谢了!