我有任何应用程序,其中email_id
是唯一的,每当最终用户输入他的email_id
时,我通过Ajax发出了一个SQL查询,检查这个email id
是否存在或不。直到这里它的工作正常,但现在我在email_is
存在的时候,那么我想在JSP页面上显示这个id已被采用,反之亦然。
所以我的问题是如何从struts应用程序获取响应并将其提供给Ajax或JSP页面以及在“struts.xml”结果标记中写入什么内容?
这是我对EmailCheck.action
的Ajax调用:
$("#email").blur(function() {
var EmailV = $("#email").val();
if(EmailV.length > 10){
$('#Loading').show();
$.get("EmailCheck.action", {
Email_Id: EmailV
}, function(response){
$('#Info').fadeOut();
$('#Loading').hide();
setTimeout("finishAjax('Info', '"+escape(response)+"')", 450);
});
return false;
}
});
如果此电子邮件类型检查器有结果标记,那么这是struts.xml
<action name="EmailCheck" class="org.register.customers.EmailCheckAction" method="EmailCheck">
<result name="input">index.jsp</result>
<result name="success">success.jsp</result>
<result name="error">error.jsp</result>
</action>
这是我的行动代码:
public String EmailCheck() throws Exception{
System.out.println(user.getEmail_Id());
boolean create = Check_Email(user);
// "this is my sql call to check the existence of email"
if (true) {
return "input";
} else {
return ERROR;
}
}
答案 0 :(得分:1)
如果您调用Ajax操作,则可以返回dispatcher
结果。在这种情况下,呈现的JSP片段将作为响应输出。此外,您还可以选择返回stream
,json
或none
结果。对于您的情况,我会考虑第一个选项。首先查看this答案,让您熟悉如何返回stream
内容类型为text/html
的结果。然后在JSP中,您应该创建一个目标div,您可以在其中放置响应。
<div id="result"/>
现在修改你的JS以将结果插入div。
}, function(response){
$("result").html(response);