말할 것도 없이 코드
액션
package com.lk.action;
import javax.annotation.Resource;
import com.googlecode.jsonplugin.annotations.JSON;
import com.lk.service.StudentControl; opensymphony.xwork2.ActionSupport;
public class LoginAjaxAction extends ActionSupport {
private String username;
private StudentControl StudentControl;
@JSON(serialize=false) //setStudentControl은 매우 중요합니다. StudentControl이 직렬화되지 않도록 직렬화하면 오류가 보고됩니다
public StudentControl getStudentControl() {//오랜 시간 동안 이 오류를 찾고 있었습니다...ajax가 계속 오류를 반환합니다
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 Execution()이 예외를 발생시킵니다. {
if(studentControl.getStudentById(Integer.parseInt( 사용자 이름))!=null){
username = "사용자가 존재합니다.";
}else{
username = "사용자가 존재하지 않습니다.";
}
return "success";
}
}
위에서 가장 중요한 것은 @JSON(serialize=false)입니다. . . 그것에 대한 의견이 있습니다. . . .
struts.xml
여기서 말하고 싶은 것은 json-default가 struts-default에서 상속된다는 것입니다....
login.html
//이사 및 사용자 이름에 바인딩된 이벤트 포커스 중
$("#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("형식이 잘못되었습니다!")
$(this).removeClass("txtclick")
}else{
$ .ajax({
url : " loginAjax",
dataType : "json",
data : {
username : $(this).val(),
time : Math.random ()*1000
},
성공: function(data){
alert("success" data.username)
},
error: function(){
alert ("오류");
}
})
}
}
})
위의 시간: Math.random()*1000 실질적인 의미는 없습니다. 주로 캐시가 비동기 새로 고침에 영향을 미치는 것을 방지하기 위한 것입니다. . . 이 기능은 첫 번째 초안으로 구현되었으며 나중에 수정될 수 있습니다.