我有任何应用程序,其中 email_id
是唯一的,当最终用户输入他的 email_id
时,我已通过 Ajax 触发 SQL 查询,检查此 email_id
是否存在。到目前为止,它工作正常,但现在如果 email_id
存在,我想将其显示在 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>
这是我的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;
}
}
最佳答案
如果您调用 Ajax 操作,您可以返回 dispatcher
结果。在这种情况下,呈现的 JSP 片段将作为响应输出。此外,您还可以选择返回 stream
、json
或 none
结果。对于你的情况我会考虑第一个选择。先看this回答让您熟悉如何返回具有 text/html
内容类型的 stream
结果。然后在 JSP 中您应该创建一个目标 div 来放置响应。
<div id="result"/>
现在修改你的JS以将结果插入div。
}, function(response){
$("result").html(response);
关于java - 如何在 Struts 2 中使用 jQuery Ajax 检查唯一用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20017685/