2010-06-25 3 views
4

저는 스프링 MVC 2.5를 사용하고 있습니다.스프링 MVC에 여러 폼이 있음

자주 모든 JSP에서 하나의 양식 만 사용합니다. 이제 다른 JSP를 동일한 JSP에 추가해야합니다.

제 질문은 Spring MVC가 제출하는 양식과 동일한 라이프 사이클 방법을 여전히 지원합니까?

동일한 데이터 바인딩, 유효성 검사, 오류 처리, 양식 컨트롤러 등을 의미합니까?

<div> 
    <form:form method="post" commandName="station"> 

    </form> 
</div> 

<div> 
    <form:form method="post" commandName="fields"> 

    </form> 
</div> 
+0

주석이 달린 컨트롤러 또는 이전 스타일의 SimpleFormController를 사용하고 있습니까? – skaffman

+0

당신의 필요를 채워주는 대답이 있으면 그것을 수락 된 것으로 표시하십시오. 고맙습니다! –

+0

@skaffman : 주석이 달린 확장 모듈이 아닌 simpleformcontroller에 대한 구내 확장 기능을 사용하고 있습니다. @Arthur : 물론, 나는 분명히 몇 가지를 분명히 할 것입니다. 고맙습니다. =) –

답변

3

오래된 스타일의 컨트롤러를 방지하기 위해 다음과 같이하십시오. @ Arthur의 답변에 따르면, 주어진 컨트롤러가 하나의 폼 객체만을 제공하기 때문에 두 폼을 한 페이지에 넣을 수는 없다는 것을 보여줍니다.

이 작업을 원할 경우 이전 스타일 컨트롤러 (Spring 2.5에서는 폐기되었으며 Spring 3에서는 사용되지 않음) 사용을 중단하고보다 유연한 주석 처리 된 컨트롤러를 사용해야합니다 . 원하는만큼 복잡하게 양식을 혼합 할 수 있습니다.

+4

예를 들어 어떻게 할 수 있습니까? 한 페이지에 엔티티를 생성하는 여러 입력 양식이 있습니까? – Czar

3

스프링 SimpleFormController는 한 종류의 Command 객체 만 지원합니다. 따라서 두 JSP 폼을 동일한 JSP로 사용하려면 두 개의 SimpleFormController를 만들어야합니다. 그리고 당신의 JSP 내에서 한 번에 몇 가지 예외 당신이 하나의 명령 개체, 따라서 하나의 양식을 지원할 수 사용하고

<c:if test="${not empty station}"> 
    <div> 
     <form:form method="post" commandName="station"> 

     </form> 
    </div> 
</c:if> 

<c:if test="${not empty fields}"> 
    <div> 
     <form:form method="post" commandName="fields"> 

     </form> 
    </div> 
</c:if> 
+0

안녕하세요 Arthur, 호기심에 사로 잡히면서 명령 개체에 if 테스트가 필요한 이유는 무엇입니까? 감사. –

+0

@Mark Estrada 스프링 폼 Taglib **이 평가할 것입니다. ** 자신이 제공 한 명령 ** 만약 명령을 평가할 수 없다면, Spring은 예외를 던질 것입니다. (명령 이름에 underblah, blah, blah ...). 를 사용해야하는 이유를 설명합니다. –

관련 문제