我现在想用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里面得到的数据很正常。
这个问题困扰我很久了,希望大家能帮帮我,先谢谢了!
不建议你把jsp的写在js里面...
应该在jsp中写:
[code="html"]
[/code]
然后在你的js里面就可以调用这个变量了
Ext.Dtg.session = login;
为什么不用JSP而用HTML呢?JSP里面可以用request取session的啊
要这么写
[color=red]<%=(User)session.get("login") %>[/color]
我建议LZ把User Json化了,然后传递到Ext中。
当然要把User中的关键信息搞掉,比如密码这些信息。
在jsp尽量不要有用户名这些信息,否则查看源代码就什么都看到了。
[quote]2 分钟前 DonTide 发给 我 的消息
标题: Ext+Struts2 登陆
正文:
我的页面全都是html,没有JSP页面的,呵呵。[/quote]
js无法操作session.
必须换成jsp,用<%%>去获取session
HTML中是无法实现的