2012-06-14 2 views
2

스프링 MVC 3을 사용하는 방법을 배웠지 만, 나는 그 배경에 매우 흥미가있다. 가장 흥미로운 점 중 하나는 양식 처리입니다.스프링 MVC 폼 처리는 어떻게 작동합니까?

지금까지 모든 Dispatcher에서 처리 한 HTTP 요청이 적절한 컨트롤러에 매핑되었음을 알고 있습니다. 콘트롤은 어떤 일에 뒤처지고 JSPX 페이지가로드되도록 선택하는 것보다 그 속성을 보낸다. JSPX는 컨테이너 (Tomcat, etc ...)에 의해 다른 서블릿으로 컴파일됩니다. 웹 페이지가 http 응답으로 다시 전송됩니다.

이것은 대부분의 경우 시나리오에서 나와 비슷하게 보입니다. 하지만 양식 처리가 다릅니다. <form:form> 태그에서 객체 및 속성 매핑을 태그에 정의했습니다. 그러나 위에서 언급 한 논리에서는 실제로 호출되지 않습니다. 내 말은, 사용자 요청 페이지 양식. 그래서 컨트롤러가 렌더링합니다. 사용자가 양식을 보내고 일부 저장 메소드가 디스패처에 의해 호출됩니다. 그러나 Spring은 호출되지 않는 JSPX에 기술되어 있다면, incomming 속성을 어떻게 매핑 할 수 있는지 알고 있는가?

스프링 MVC 배경에 좋은 웹 페이지, 리소스가 있으면 링크를 게시하십시오. 고맙습니다.

+0

JSPX가 호출되지 않는다는 것을 의미합니까? HTML이 어떻게 생성 된 것이라고 생각하십니까? –

+0

예, 양식이 사용자에게 렌더링 될 때. 그러나 사용자가 데이터를 다시 게시하면 다른 요청이 전송됩니다. –

+0

예; JSP와 어떤 관련이 있습니까? 어쨌든 양식 값에는 이름이 있습니다. 이 이름은 모델 객체/etc에 매핑하는 데 사용됩니다. 유형 변환은 양식과 모델 유형의 문자열을 변환합니다. –

답변

4

음, 모든 봄 참조 왕은 거기 MVC에 긴 섹션, 그리고 봄 태그를 사용하여 페이지를 구성하는 방법에 대한

http://static.springsource.org/spring/docs/current/

이다.

문제는 화재 호스에서 음료를 마시라고 말하는 것과 같습니다. Spring을 사용할 때 더 잘 했으므로 Spring에서 한 가지 방법을 잘 아는 것은 Spring을 사용하여 다른 일을하는 법을 잘 알고 있다는 것을 배웠습니다.

학습의 가치가있는 모든 것, 그리고 스프링의 진정한 강점은 당신이 그것에 대해 더 많이 배울 때 자신을 드러내는 것입니다.

"스프링 폼 예제"에 대한 인터넷 검색은 http://www.mkyong.com/spring-mvc/spring-mvc-form-handling-example/과 같은 유용한 예제를 나타냅니다. 그러나 학습을 향한이 접근법의 문제점은 스프링이 끊임없이 진화하고 있다는 것입니다. 나는 웹에서 임의의 예제를 배우는 것이 Spring 3이 사용 가능하기 전에 예제를 게시했거나 주석을 사용할 수 있다는 사실 때문에 복잡하다는 것을 알았다.

나를 위해, 나는 봄을 계속 배우기 때문에 하나의 참조가 없다. 주된 참고 문헌이었고 웹에 많은 예제가 있었으며 여기에 많은 질문을 읽고 몇 가지를 게시했습니다.

+0

고마워,하지만 그것을 사용하는 방법에 대한 튜토리얼을 많이 읽었습니다. 나는 그것을 사용할 수있다 : 나는 그것이 백그라운드에서 작동하는 방법에 관심이있다 ... –

+0

아, 와우. 내부에 대해서는 아무 것도 보지 못했습니다. (물어 보지 않았지만!)하지만 소스 코드를 살펴 보겠습니다. – Marvo

1

질문을 설명하는 방식에서부터 나는 HTTP의 개념을 알고 있다고 생각합니다. 그러나 HTTP 매개 변수와 요청 특성 및 해당 수명주기를 구분할만큼 충분히 깊지는 않은 것으로 보입니다.

사용자가 페이지를 요청하면 Controller 내의 메소드가 호출되어 Controller에서 설정된 요청 속성과 함께 표시 할 View을 표시합니다. 뷰는 HTML 형식으로 렌더링됩니다. 이 HTML에는 렌더링 된 양식이 있습니다. 이 양식에는 동일한 URL을 가리킬 수도 있고 그렇지 않을 수도있는 작업이 있습니다. URL은 요청이 다시 전송 될 때 컨트롤러의 메서드 (다른 메서드가있는 동일한 컨트롤러이거나 완전히 다른 컨트롤러 일 수 있음)에 다시 매핑됩니다. 두 번째 요청과 함께 양식 내의 매개 변수는 해당 컨트롤러의 메서드로 보내지고 같은주기가 첫 번째 요청으로 다시 발생합니다.

관련 문제