extjs页面无法跳转

zmx198768 2009-09-16 08:47:52
页面代码如下
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="../extjs/resources/css/ext-all.css" />
<script type="text/javascript" src="../extjs/ext-base.js" ></script>
<script type="text/javascript" src="../extjs/ext-all.js" ></script>
<script type="text/javascript">
<!--
Ext.onReady(function(){
var form= new Ext.form.FormPanel({
labelAlign:'center',
title:'登录',
labelWidth:50,
frame:true,
width:300,
url:'../LoginAction',
items: [{
xtype:'textfield',
fieldLabel: '用户名',
name:'username',
id:'username'
},
{
xtype:'textfield',
inputType:'password',
fieldLabel: '密码',
name:'password',
id:'password'
},
{
xtype:'panel',
html:'<center><%=(request.getParameter("tip")==null?"":request.getParameter("tip")) %></center>'
}
],
buttons: [{
text: '登录',
handler: function() {
form.getForm().submit();
}
}]

});

form.render('form');
});
-->
</script>
</head>

<body>

<div id="form" style="margin:100px;"></div>

</body>
</html>




servlet代码如下
package action;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import dao.AdminDao;

import po.Admin;

import utils.StringUtils;

/**
*
* @author 曾铭新(zmx198768)
* @create Sep 14, 2009 10:45:03 PM
*/
public class LoginAction extends HttpServlet {

private static final long serialVersionUID = 5853891517115129658L;

/**
* The doGet method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to get.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request,response);
}

/**
* The doPost method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to post.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

String username=request.getParameter("username");
String password=request.getParameter("password");



if(StringUtils.isEmpty(username)||StringUtils.isEmpty(password)){
request.getRequestDispatcher("admin/login.jsp?tip=用户名与密码不能为空").forward(request,response);
return ;
}

Admin admin= new Admin();
admin.setUsername(username);
admin.setPassword(password);

if(!AdminDao.verify(admin)){
request.getRequestDispatcher("admin/login.jsp?tip=用户名或密码错误").forward(request,response);
return ;
}

request.getSession().setAttribute("admin","admin");
RequestDispatcher rd=request.getRequestDispatcher("admin/manager.jsp");
rd.forward(request,response);

}

}




所有的情况均无法跳转
如果是从非extjs页面登录的话,则正常
此疑惑在线求解
...全文
756 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lin364653705 2009-09-22
  • 打赏
  • 举报
回复
我是这样做的,正常跳转

buttons: [{
text: '登录',
handler: loginMethod
}]

function loginMethod(){
if(menu.getForm().isValid()){
Ext.Ajax.request({
url: 'login.do',
params: "uname="+Ext.get('username').dom.value+"&pwd="+Ext.get ('pwd').dom.value,
success:function(response,options){
var result = response.responseText;
if(result=="yes"){
loginForm.submit();
}else{
Ext.Msg.alert('消息','用户名或密码错误');
}
},
failure:function(response,options){
Ext.Msg.alert('错误','服务器端失败,请稍后重试');
}
})
}else{
Ext.Msg.alert('错误','请检查输入项');
}
}

<body>
<form actionadmin/manager.jsp" method="post" name="loginForm">
</form>
</body>




lin364653705 2009-09-22
  • 打赏
  • 举报
回复
晕哦,不能编辑了,有些地方没对!刚改的时候改错了~~这样应该就没问题了,后台不需要写跳转
<form action="admin/manager.jsp" method="post" name="loginForm">
</form>
goosman 2009-09-18
  • 打赏
  • 举报
回复
掐个断点, 看看你的extjs登录的时候, 能不能进到你的servlet中.
如果进不去, 那么应该是你的form的url有问题
luxiaoshuai 2009-09-18
  • 打赏
  • 举报
回复
应该是配置文件的问题。建议让其它的人check一下你的XML文件。(因为自己写的自己看不出来)
  • 打赏
  • 举报
回复
web.xml里配置了么
jacky68147527 2009-09-17
  • 打赏
  • 举报
回复
我是用这种方法实现的:


var loginSuccessWindow = new Ext.Window({
width : 300,
height : 60,
closeable : false,
frame : true,
closeAction : 'hide',
items : [
{
frame : true,
html : '登录成功<br/><img src="<%=path %>/images/wait.gif" />正在加载个人设置,请稍后……'
}
]
});

var btn_login = new Ext.Toolbar.Button({
id : 'btn_login',
text : '登录',
handler : function(){
if(loginPanel.getForm().isValid()){
loginPanel.getForm().doAction('submit',{
waitMsg : '正在登陆,请稍后……',
url : contextPath+'/userLogin.ext?pmethod=userLogin',
method : 'post',
success : function(response, action) {
var message = action.result.message;
//Ext.Msg.alert('提示',message);
loginSuccessWindow.show()
loginWindow.hide();
//window.location.href='${forwardUrl }';
setTimeout(function(){
loginSuccessWindow.hide();
document.location.reload();
},2000);
//alert(${forwardUrl});
},
failure:function(response,action){
var message = action.result.message;
Ext.Msg.alert('提示',message);

}
});
}
}
});


先将数据提交到你的servlet进行登录验证。然后将验证信息传到前台。再在前台通过js来控制页面跳转!

希望对你有用!

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧