今天第一次使用ajax。
jquery代码
$("#id").blur(function(){
var id=$("#id").val();
$.ajax({
url:"isExisit.action",
type:"post",
data:"id="+id+"",
success:function(data){
if(data == "yes")
$("#notice").css({display:"block"});
else if(data == "no") {
$("#notice").css({display:"none"});
}
}
});
});
当鼠标焦点移开id为“id”的文本框时,触发上面的函数,获得id,然后ajax发送给action,获得返回的data。
struts配置:
<action name="isExisit" class="com.rick.action.UserAction" method="isExisit">
</action>
isExisit函数不需要返回值,故返回null。
java action代码片段
本质是用servelt的方法来实现
public String isExisit(){
String id = request.getParameter("id");
if(userService.isExisit(id))
print("yes");//此print为封装过的函数
else
print("no");
return null;
}
action继承自ActionSupport,拥有:
protected HttpServletResponse response;
protected HttpServletRequest request;
print函数的实现部分(上面的调用下面的):
public void print(String str) {
this.print(str, "text/html; charset=utf-8");
}
private void print(String str, String contentType) {
ActionUtil.print(response, str, contentType);
}
public static void print(HttpServletResponse response, String str, String contentType) {
response.setContentType(contentType);
PrintWriter out = null;
try {
out = response.getWriter();
} catch (IOException e) {
e.printStackTrace();
}
if (out != null) {
out.print(str);
out.close();
}
}