2010-03-26 5 views
1

여러 요청을 처리 할 수있는 컨트롤러가 필요합니다. 모든 addUser, deleteUser, updateUser 및 viewUser 기능을 처리하는 UserController와 같습니다. MultiActionController를 사용하여 여러 유사한 요청을 하나의 컨트롤러에 번들로 제공 할 수 있다는 것을 알고 있습니다. 그러나 addUser 및 updateUser와 같은 기능에는 사용자가 데이터를 입력해야하는데 컨트롤러가 처리해야합니다. MultiActionController가 doSubmit 종류의 메소드를 처리 할 수 ​​있습니까 (SimpleFormController와 유사). 이런 종류의 시나리오를 처리하는 더 좋은 방법이 있습니까?폼 디자인 streatgy로 다중 액션

감사합니다. 라비

답변

1

어떤 스프링 MVC 버전을 사용하고 있습니까? 2.5 또는 그 이상을 사용하고 있다면 Spring MVC 주석을 살펴 봐야한다. 그러면 어떤 클래스라도 원하는만큼의 컨트롤러 메소드를 가진 컨트롤러가 될 수있다. (POST 요청을 처리하는 클래스를 절대적으로 포함 할 수있다.) "doSubmit "- GET 요청을 처리하는 일부).

샘플 코드 추가 편집 :

(나는 REST 규칙을 사용하도록 노력하고있어 샘플이 참고 있지만은 필요하지 않습니다.) UserController.java 내

(상속 할 필요가 없습니다 어떤 봄 학급에서라도 그러나 위에 이 있어야한다)

@RequestMapping(value = "https://stackoverflow.com/users/{userId}", method = RequestMethod.GET) 
public String showUser(@PathVariable("userId") Long userId, ModelMap model) {  
    model.addAttribute("user", userRepository.getUser(userId)); 
    return "showUser"; //view name 
} 

    @RequestMapping(value = "https://stackoverflow.com/users/", method = RequestMethod.POST) 
    public String createUser(@ModelAttribute("user") User user, BindingResult result, SessionStatus status) { 

    new UserValidator().validate(user, result); 
    if (result.hasErrors()) { 
     return "userForm"; 
    } 
    else { 
     userRepository.saveUser(user); 
     status.setComplete(); 
     return "redirect:/users/" + user.getId();`enter code here` 
    } 
+0

나는 봄 2.5를 사용하고있다. 샘플 코드를 줄 수 있습니까? 감사. – Ravi