ExtJS前台可以接收到多个后台的返回值吗?关于登录验证的,加分了!
时间:2010-10-07
来源:互联网
以前问过,后来出了点插曲,搁置了。
我想接收后台返回2个值,一个是 success标志, 还有一个是用户名。
很多人提议用Ext request
前面不管用什么 success部分的处理应该还是一样的吧
问题就在这里===================================================================
function login(){//提交表单
loginForm.form.submit({
clientValidation: true,
waitMsg: '正在登陆系统请稍后 ',
swaitTitle: '提示 ',
url: '../user.do?m=login ',
method: 'POST ',
success: function(form, action){
windowLogin.hide();
Ext.Msg.alert( '提示 ', '系统登陆成功 ');
//window.history.go(0);
//document.execCommand( 'Refresh ');//本想直接刷新
//但是没有效果
//。。。。。。。怎么接受后台传出的用户名?????????????????
//用action.result.responseText 吗?可是我想返回2个 怎么区别呢?
Ext.getCmp( "toolbar_login ").setText( "用户名。。。 ");
},
failure: function(form, action){
Ext.Msg.alert( '提示 ', '系统登陆失败,原因: ' + action.failureType);
}
});
}
=============================================
public ActionForward login(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
UserForm userForm = (UserForm) form;
String mappingForward = " ";
int listSize = userService.findByUsername(
userForm.getUser().getUsername()).size();
System.out.println( "login listSize " + listSize);
TbUser user = null;
boolean isSuccess = false;
if (listSize != 0) {
user = (TbUser) userService.findByUsername(
userForm.getUser().getUsername()).get(0);
if (user.getPassword().equals(userForm.getUser().getPassword())) {
request.getSession().setAttribute( "loginUser ", user);
System.out.println( "has login ");
isSuccess = true;
try {
response.setContentType( "text/json;charset=UTF-8 ");
PrintWriter out = response.getWriter();
//这里难道是这样写吗?这样ProgessBar会一直加载呢?????????????????????
//out.write()只能有一句 要不然总是无限加载
// out.write( "{nickname: "+user.getNickname()+ "} ");
out.write( "{success: " + isSuccess + "} ");
// out.flush();
// out.close();// 清空、关闭
} catch (IOException e) {
e.printStackTrace();
}
}
} else {
isSuccess = false;
}
return null;
}
=======================前台页面部分的:=============================================
<%@ page language= "java " pageEncoding= "GBK " import= "myBlog.dao.* "%>
<%@ taglib uri= "http://struts.apache.org/tags-bean " prefix= "bean "%>
<%@ taglib uri= "http://struts.apache.org/tags-html " prefix= "html "%>
<%@ taglib uri= "http://struts.apache.org/tags-logic " prefix= "logic "%>
<%@ taglib uri= "http://struts.apache.org/tags-tiles " prefix= "tiles "%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN ">
<html>
<head>
<meta http-equiv= "content-type " content= "text/html; charset=UTF-8 ">
<title> MyAjax1.jsp </title>
<link rel= "stylesheet " type= "text/css "
href= "../extJS/ext-2.3.0/resources/css/ext-all.css " />
<script type= "text/javascript "
src= "../extJS/ext-2.3.0/adapter/ext/ext-base.js ">
</script>
<script type= "text/javascript " src= "../extJS/ext-2.3.0/ext-all.js ">
</script>
</head>
<body>
<%
TbUser loginUser = (TbUser) request.getSession().getAttribute(
"loginUser ");
if (loginUser == null) {
%>
<script type= "text/javascript ">
Ext.onReady( function() {
Ext.QuickTips.init();
Ext.form.Field.prototype.msgTarget = 'side ';
initHeadToolBar();
initForm();
initWindow();
windowLogin.hide();
});
var headToolBar;
function initHeadToolBar() {
headToolBar = new Ext.Toolbar( {
applyTo : 'toolbar ',
width :400
});
headToolBar.add( {
id : 'toolbar_login ',
text : 'login ',
handler : function() {
windowLogin.show();
}
});
}
/*login窗口 */
var windowLogin;
function initWindow(){
alert( "initn Window ");
windowLogin = new Ext.Window({
layout: 'fit ',
width: 380,
height: 280,
resizable: false,
closeAction: 'hide ',
renderTo:Ext.getBody(),
items: [loginForm]
});
}
/* 设置 loginForm */
var loginForm;
function initForm(){
alert( "initnForm ");
loginForm = new Ext.form.FormPanel({
width: 230,
frame: true,
items: [
new Ext.form.TextField({
fieldLabel: '用户名 ',
name: 'user.username ',
value: '[email protected] ',
allowBlank: false,
vtype: 'email '
}), new Ext.form.NumberField({
fieldLabel: '密码 ',
name: 'user.password ',
value: '123 ',
inputType: 'password ',
allowBlank: false
})],
buttons: [
new Ext.Button({
text: '登陆 ',
handler: login
}), new Ext.Button({
text: '重置 ',
formBind: true,
handler: function(){
loginForm.getForm().reset();
}
})]
});
}
/* 表单提交动作 */
function login(){//提交表单
loginForm.form.submit({
clientValidation: true,
waitMsg: '正在登陆系统请稍后 ',
swaitTitle: '提示 ',
url: '../user.do?m=login ',
method: 'POST ',
success: function(form, action){
windowLogin.hide();
//Ext.Msg.alert(action.result.responseText);
Ext.Msg.alert( '提示 ', '系统登陆成功 ');
//window.history.go(0);
//document.execCommand( 'Refresh ');
Ext.getCmp( "toolbar_login ").setText(action.result.responseText);
},
failure: function(form, action){
Ext.Msg.alert( '提示 ', '系统登陆失败,原因: ' + action.failureType);
}
});
}
</script>
<%
} else {
%>
Hi!
<%=loginUser.getUsername()%>
welcome!!
<%
}
%>
<div id= 'toolbar '>
</div>
<div id= 'form '>
</div>
</body>
</html>
我想接收后台返回2个值,一个是 success标志, 还有一个是用户名。
很多人提议用Ext request
前面不管用什么 success部分的处理应该还是一样的吧
问题就在这里===================================================================
function login(){//提交表单
loginForm.form.submit({
clientValidation: true,
waitMsg: '正在登陆系统请稍后 ',
swaitTitle: '提示 ',
url: '../user.do?m=login ',
method: 'POST ',
success: function(form, action){
windowLogin.hide();
Ext.Msg.alert( '提示 ', '系统登陆成功 ');
//window.history.go(0);
//document.execCommand( 'Refresh ');//本想直接刷新
//但是没有效果
//。。。。。。。怎么接受后台传出的用户名?????????????????
//用action.result.responseText 吗?可是我想返回2个 怎么区别呢?
Ext.getCmp( "toolbar_login ").setText( "用户名。。。 ");
},
failure: function(form, action){
Ext.Msg.alert( '提示 ', '系统登陆失败,原因: ' + action.failureType);
}
});
}
=============================================
public ActionForward login(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
UserForm userForm = (UserForm) form;
String mappingForward = " ";
int listSize = userService.findByUsername(
userForm.getUser().getUsername()).size();
System.out.println( "login listSize " + listSize);
TbUser user = null;
boolean isSuccess = false;
if (listSize != 0) {
user = (TbUser) userService.findByUsername(
userForm.getUser().getUsername()).get(0);
if (user.getPassword().equals(userForm.getUser().getPassword())) {
request.getSession().setAttribute( "loginUser ", user);
System.out.println( "has login ");
isSuccess = true;
try {
response.setContentType( "text/json;charset=UTF-8 ");
PrintWriter out = response.getWriter();
//这里难道是这样写吗?这样ProgessBar会一直加载呢?????????????????????
//out.write()只能有一句 要不然总是无限加载
// out.write( "{nickname: "+user.getNickname()+ "} ");
out.write( "{success: " + isSuccess + "} ");
// out.flush();
// out.close();// 清空、关闭
} catch (IOException e) {
e.printStackTrace();
}
}
} else {
isSuccess = false;
}
return null;
}
=======================前台页面部分的:=============================================
<%@ page language= "java " pageEncoding= "GBK " import= "myBlog.dao.* "%>
<%@ taglib uri= "http://struts.apache.org/tags-bean " prefix= "bean "%>
<%@ taglib uri= "http://struts.apache.org/tags-html " prefix= "html "%>
<%@ taglib uri= "http://struts.apache.org/tags-logic " prefix= "logic "%>
<%@ taglib uri= "http://struts.apache.org/tags-tiles " prefix= "tiles "%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN ">
<html>
<head>
<meta http-equiv= "content-type " content= "text/html; charset=UTF-8 ">
<title> MyAjax1.jsp </title>
<link rel= "stylesheet " type= "text/css "
href= "../extJS/ext-2.3.0/resources/css/ext-all.css " />
<script type= "text/javascript "
src= "../extJS/ext-2.3.0/adapter/ext/ext-base.js ">
</script>
<script type= "text/javascript " src= "../extJS/ext-2.3.0/ext-all.js ">
</script>
</head>
<body>
<%
TbUser loginUser = (TbUser) request.getSession().getAttribute(
"loginUser ");
if (loginUser == null) {
%>
<script type= "text/javascript ">
Ext.onReady( function() {
Ext.QuickTips.init();
Ext.form.Field.prototype.msgTarget = 'side ';
initHeadToolBar();
initForm();
initWindow();
windowLogin.hide();
});
var headToolBar;
function initHeadToolBar() {
headToolBar = new Ext.Toolbar( {
applyTo : 'toolbar ',
width :400
});
headToolBar.add( {
id : 'toolbar_login ',
text : 'login ',
handler : function() {
windowLogin.show();
}
});
}
/*login窗口 */
var windowLogin;
function initWindow(){
alert( "initn Window ");
windowLogin = new Ext.Window({
layout: 'fit ',
width: 380,
height: 280,
resizable: false,
closeAction: 'hide ',
renderTo:Ext.getBody(),
items: [loginForm]
});
}
/* 设置 loginForm */
var loginForm;
function initForm(){
alert( "initnForm ");
loginForm = new Ext.form.FormPanel({
width: 230,
frame: true,
items: [
new Ext.form.TextField({
fieldLabel: '用户名 ',
name: 'user.username ',
value: '[email protected] ',
allowBlank: false,
vtype: 'email '
}), new Ext.form.NumberField({
fieldLabel: '密码 ',
name: 'user.password ',
value: '123 ',
inputType: 'password ',
allowBlank: false
})],
buttons: [
new Ext.Button({
text: '登陆 ',
handler: login
}), new Ext.Button({
text: '重置 ',
formBind: true,
handler: function(){
loginForm.getForm().reset();
}
})]
});
}
/* 表单提交动作 */
function login(){//提交表单
loginForm.form.submit({
clientValidation: true,
waitMsg: '正在登陆系统请稍后 ',
swaitTitle: '提示 ',
url: '../user.do?m=login ',
method: 'POST ',
success: function(form, action){
windowLogin.hide();
//Ext.Msg.alert(action.result.responseText);
Ext.Msg.alert( '提示 ', '系统登陆成功 ');
//window.history.go(0);
//document.execCommand( 'Refresh ');
Ext.getCmp( "toolbar_login ").setText(action.result.responseText);
},
failure: function(form, action){
Ext.Msg.alert( '提示 ', '系统登陆失败,原因: ' + action.failureType);
}
});
}
</script>
<%
} else {
%>
Hi!
<%=loginUser.getUsername()%>
welcome!!
<%
}
%>
<div id= 'toolbar '>
</div>
<div id= 'form '>
</div>
</body>
</html>
作者: cart55free99 发布时间: 2010-10-07
怎么格式全乱了?
作者: cart55free99 发布时间: 2010-10-07
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28