[SPRING] 봄과 아약스
SPRING봄과 아약스
Spring 폼 태그 라이브러리를 Ajax와 함께 사용할 수 있습니까? 컨트롤러 내부에서 양식 입력 매개 변수를 검색 할 수 없습니다. 그들은 항상 null입니다.
사실 양식이 제출되지 않는다는 논리가 있습니다. 그런 다음 Spring 커맨드 빈에 매핑 된 폼 제출과 같이 객체가 아닌 컨트롤러에만 문자열을 보낼 수 있습니다.
commandBean을 수락하는 폼
<form:form method="POST" commandName="clinicBean">
Clinic Name: <form:input path="name" type="text" /><br/>
Clinic Address: <form:input path="address" type="text"/><br/>
<input type="button" value="Create Clinic" onclick="clinicAjax()"/>
</form:form>
Spring 컨트롤러를 호출하는 Ajax 함수
function clinicAjax(){
alert('Inside Clinic Ajax Method');
$.ajax({
url: 'clinicAjax',
type: 'POST',
success: alert('Ajax Successful')
});
}
스프링 컨트롤러 방법 :
@RequestMapping(value="clinicAjax",method=RequestMethod.POST)
public @ResponseBody String createClinic(@ModelAttribute("clinicBean") Clinic clinic){
System.out.println("Ajax call successful");
System.out.println(clinic);
System.out.println(clinic.getName());
System.out.println(clinic.getAddress());
return "SUCCESS";
}
System.out.println () 문에서 항상 null을 가져옵니다.
해결법
-
==============================
1.문제는 양식을 어디서나 직렬화하지 않으므로 서버에 전송되지 않는다는 것입니다.
문제는 양식을 어디서나 직렬화하지 않으므로 서버에 전송되지 않는다는 것입니다.
자바 스크립트 코드를 다음으로 변경하십시오.
function clinicAjax(){ alert('Inside Clinic Ajax Method'); $.ajax({ url: 'clinicAjax', data: yourFormElement.serialize(); /* i.e. $('#formId').serialize(); */ type: 'POST', success: alert('Ajax Successful') }); }
폼을 나타내는 jQuery 객체로 yourFormElement를 대체하면 제대로 작동합니다.
from https://stackoverflow.com/questions/11611843/spring-and-ajax by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Spring MVC와 다중 응답 유형으로 JSONP를 지원하는 방법 (0) | 2019.04.26 |
---|---|
[SPRING] Spring Data Neo4J 4.0.0 : BeforeSaveEvent가 실행되지 않습니까? (0) | 2019.04.26 |
[SPRING] 휴식 컨트롤러에서 코러스 문제 제거 방법 (0) | 2019.04.26 |
[SPRING] 프로그래밍 방식으로 로그인 할 때 생성 된 쿠키를 기억하십시오 (0) | 2019.04.26 |
[SPRING] Zuul은 kubernetes에서 서비스로 트래픽을 라우팅 할 수 없습니다. (0) | 2019.04.26 |