2013-08-23 6 views
1

나는 봄에 익숙하지 않으며 약간의 안내가 필요하다. 봄 튜토리얼을 통해 있지만, 내가 무엇을 찾고 찾을 수 없습니다. 이 시나리오를 처리하는 가장 좋은 방법은 무엇인지 알고 싶습니다.스프링 컨트롤러에서 리다이렉트 플로우를 처리하는 방법

  1. 사용자가 인덱스 페이지로 이동하여 양식과 함께 표시됩니다.
  2. 사용자가 양식을 채우고 새로운 URL에 제출하는 양식 객체의 봄 검증하는 동안
  3. (클라이언트 측 유효성 검사를 통과), 그것은
  4. 강조 영향을받는 필드 인덱스 페이지로 다시 사용자를 리디렉션
  5. 오류를 감지

이 상황에 맞는 올바른 흐름이라고 가정합니다. 그렇지 않다면, 제발 말해줘. 이것이 올바른 흐름 인 경우 바인딩/유효성 검사 오류를 템플릿에 어떻게 전달합니까?

답변

0

이 경우 Post/Redirect/Get pattern 플로우를 따르십시오. 서버 측 유효성 검사가 실패하면 (result.hasErrors()) 리디렉션하지 않고 인덱스 페이지를 다시 표시하십시오. Spring은 템플릿에 오류를 전달합니다. 오류를 표시하려면 Spring MVC를 지원하는 템플릿 엔진의 기능을 사용하십시오 (예 : JSP의 모든 오류 표시 - <form:errors path="*" element="div" />).

@Controller 
public class MyController { 

    @RequestMapping(value="/index.html", method=RequestMethod.GET) 
    public String display(@ModelAttribute MyForm myForm){ 
     return "index"; 
    } 

    @RequestMapping(value="/process.do", method=RequestMethod.POST) 
    public String processForm(@ModelAttribute @Validated MyForm myForm, 
          BindingResult result) { 

     if(result.hasErrors()){ 
      return display(myForm); 
     } 

     return "redirect:/processed.html"; 
    } 
} 
관련 문제