不多說了,上碼
action
程式碼如下:
import javax.annotation.Resource;
import com.googlecode.jsonplugin.annotations.JSON;
import com.lk.service.StudentControl;
import com.opensymphony. xwork2.ActionSupport;
public class LoginAjaxAction extends ActionSupport {
private String username;
private StudentControl studentControl;
@JSON(serialize=falsese) //StustentControl,很利用了序列化,如果序列化會報錯
public StudentControl getStudentControl() {//這個錯,找了好久...ajax一直返回error
return studentControl;
}
@Resource(name= "studentControl")
public void setStudentControl(StudentControl studentControl) {
this.studentControl = studentControl;
}
public String getUsername() {
return username; public void setUsername(String username) {
this.username = username;
}
@Override
public String execute() throws Exception {
if(studentControl.getStudentById(Int>if(studentControl.getStudent)(Int.使用者名稱))!=null){
username = "使用者存在";
}else{
username = "使用者不存在";
}
return "success";
}
}
上面的最重要的就是那個@JSON(serialize=false) 。 。 。上面有註釋。 。 。 。
這裡要說的就是json-default是繼承自struts-default ....
程式碼如下:
//使用者名稱綁定的事件焦點的移入與移出
$("#un" ).bind({
focus:function(){
$(this).addClass("txtclick");
},
blur:function(){
var vtxt = $ ("#un").val();
if (vtxt.length == 0) {
$("#unerror").html("使用者名稱不能為空");
$ (this).removeClass("txtclick");
}else if(!isInteger(vtxt)){
//偵測使用者名稱格式是否正確
$("#unerror").html("格式不正確! "json",
data : {
username : $(this).val(),
time : Math.random()*1000
},
success : function(data) {
alert("成功" data.username);
},
error : function(){
alert("錯誤");
}
})
}
}
});
上面的time : Math.random()*1000 沒有什麼實際意義主要是防止快取影響非同步刷新。 。 。初稿,功能實現了,後面可以慢慢改