2013-09-04 2 views
-1

봄에는 컨트롤러 처리기를 작성하는 데 2 ​​가지 형식이 있습니다.
누군가 어떤 형식을 사용할지 결정하는 데 도움이 될 수 있습니까?
기본 설정의 형식은 무엇입니까?
새로운 바이이기 때문에 이것은 올바른 길을 찾는 데 도움이 될 것입니다.스프링 컨트롤러 사용 규칙

옵션 1 :

@RequestMapping(value=".....", method=RequestMethod.GET) 
    public String loadFormPage(Model m) { 
     m.addAttribute("subscriber", new Subscriber()); 
     return "formPage"; 
    } 

    @RequestMapping(value="....", method=RequestMethod.POST) 
    public String submitForm(@ModelAttribute Subscriber subscriber, Model m) { 
     m.addAttribute("message", "Successfully saved person: " + subscriber.toString()); 
     return "formPage"; 
    } 

옵션 2 :

@RequestMapping(value=".....") 
    public ModelAndView personPage() { 
     return new ModelAndView("person-page", "person-entity", new Person()); 
    } 

    @RequestMapping(value=".....") 
    public ModelAndView processPerson(@ModelAttribute Person person) { 
     ModelAndView modelAndView = new ModelAndView(); 
     modelAndView.setViewName("person-result-page"); 

     modelAndView.addObject("pers", person); 

     return modelAndView; 
    } 

답변

0

봄 제어 방법은 입력 파라미터를 특정하기위한 스프링 제로 일대 입력 파라미터 및 주요 메커니즘이다 지원 @RequestParam@ModelAttribute 특수 효과
@RequestParam 주석은 문자열 및 정수와 같은 개별 요청 매개 변수를 컨트롤러의 메서드 매개 변수에 바인딩하는 데 사용됩니다.
@ModelAttribute 주석은 도메인 객체, 데이터 전송 객체 및/또는 양식 보조 객체와 같은 복합 객체를 컨트롤러의 메서드 매개 변수에 바인딩하는 데 사용됩니다.

annotaton은 변수 유형에 의해 결정됩니다.
프리미티브 변수 @RequestParam
주석 이름 변수 명으로부터

봄 제어 방법 수도 출력 모델 데이터 도출 @ModelAttribute

주석 될 복소 변수, 주요기구로 주석 될 출력 모델 데이터를 지정하기위한 Spring의 경우 ModelAndView 개체입니다.
메서드에서 반환 할 데이터가없는 경우 컨트롤러 메서드는 렌더링되어야하는 뷰를 나타내는 String을 반환 할 수 있습니다.
컨트롤러 메서드가 데이터를 반환하면 ModalAndView 개체를 인스턴스화해야하며 각 출력 변수는 모델 특성으로 ModelAndView 개체에 추가됩니다.