JFinal 页面跳转问题

beetle 发布于 2013/06/17 16:56
阅读 6K+
收藏 0

@JFinal ,你好:
    刚刚接触JFinal,正在熟悉中。做了小项目来练习。

        这是我的页面代码:

<body>
<div>
	<table>
		<tr>
			<td>Email:</td>
			<td><input id="email" type="text"/></td>
		</tr>
		<tr>
			<td></td>
			<td><span class="emailmsg"></span></td>
		</tr>
		<tr>
			<td>Password:</td>
			<td><input id="password" type="password" onchange="login()"/></td>
		</tr>
		<tr>
			<td></td>
			<td><span class="loginmsg"></span></td>
		</tr>
	</table>
	
</div>
<script type="text/javascript">
	$('#email').val('').focus();
	
	function login(){
		var $email = $('#email').val();
		var $password = $('#password').val();
		$.ajax({
			type:"POST",
			url:"user/loginByEmail",
			data:"email="+$email+"&&password="+$password,
			success:function(msg){
				$('.loginmsg').text(msg);
			}
		})
	}
	
</script>
</body>
这是Controller代码:

public void loginByEmail(){
		String email = getPara("email");
		String password = getPara("password");
		List<Record> users = new User().loginByEmail(email, password);
		if(users.size()!=0){
			//redirect("/main.html");
			forwardAction("/main");
		}else{
			renderText("用户名或密码有错,无法登陆!");
		}
	}
只是一个登陆验证的功能,正确运行时应该是查询的此账户信息后直接跳转到main.html页面,如果没有此账户信息就返回给页面一个String。但是实际运行时,如果没有此账户也就是登陆失败,返回给页面一个错误信息的功能是正常的。但是登陆成功时从数据库中可以查到此账户并没有直接跳转到main.html页面。而是把main.html页面的代码当成错误信息传回到调用页面了。

上图。

登陆失败:

登陆成功:

还望指教  谢谢

加载中
0
缪斯的情人
缪斯的情人
你前面是个ajax请求,登陆成功了,回调的msg哪来的?这个地方你不应该forwardAction("/main");最好是根据一个flag判断是否成功了,成功则window.location.href="/main";错误则按照你的流程处理
缪斯的情人
缪斯的情人
回复 @学JAVA的大仁哥 : 多谢指正,已修改
Java_weber
Java_weber
你的location写错了(ps:因为我复制过去发现转不了)
0
beetle
beetle

引用来自“缪斯的情人”的答案

你前面是个ajax请求,登陆成功了,回调的msg哪来的?这个地方你不应该forwardAction("/main");最好是根据一个flag判断是否成功了,成功则window.loaction.href="/main";错误则按照你的流程处理
 msg就是返回的信息啊   jquery里面就是这么调用的   而且我原来做项目时都是在Servlet里判断的  成功直接跳转其他页面  不成功返回一个错误信息给回调函数
0
beetle
beetle
谢谢  @ 缪斯的情人  是我自己搞错了  
返回顶部
顶部