在我的登录servlet页面中有一些条件。用户是使用ajax调用注册的用户传递URL到JavaScript。如果用户没有注册然后尝试登录我需要显示错误消息并重定向到同一页面URL但是在这里我无法一次将URL和消息传递给JavaScript文件使用ajax调用我只能传递一个对象无论是URL还是消息,请告诉我如何将这两个对象传递给JavaScript。
答案 0 :(得分:0)
发生这种情况因为print(arg)
引用的类 PrintWriter 的out
只接受一个参数。是任何类型的。查看API here。假设你总是得到一个成功的回调。
尝试应该工作:
代码:
String resp= ""; // final response
if(User.isValid())
{
resp="MyList.jsp" ;
}
else
{
Url="Login.jsp";
Msg="Sorry, you are not a registered user! Please sign up first";
resp= Url + "@" + Msg;
}
PrintWriter out = response.getWriter();
out.print(resp); // based upon your condition above.
改变你的JS:
<script type="text/javascript">
$(document).ready(function() {
$('#btnLogin').click(function ()
{
$.ajax({
type: "post",
url: "Login", //this is my servlet
data: "uname=" +$('#inputUserID').val()+"&pwd="+$('#inputPassword').val(),
success: function(data){
alert(data);
var response = data.split("@");
if(response.length>1){
// if user is a valid user
$(window.location).attr('href', response[0]);
} else {
// if user in invalid
$(window.location).attr('href', response[0]);
$("#message").html(response[1]);
}
}
});
});
});
</script>
答案 1 :(得分:0)
您可以连接URL和MSG的字符串,并使用分隔符传递out.println,然后在JS的另一端拆分它。
if
{
data ="Login.jsp$Sorry, you are not a registered user! Please sign up
first";
}
PrintWriter out = response.getWriter();
out.print(data);