@Configuration
@EnableWebMvc
public class WebConfig implements WebMvcConfigurer {
@Bean
public ViewResolver viewResolver() {
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
resolver.setPrefix("/WEB-INF/views/");
resolver.setSuffix(".jsp");
return resolver;
}
}
public class UserForm {
private String name;
private String email;
// getters and setters
}
@Controller
public class UserController {
@PostMapping("/user/create")
public String createUser(@ModelAttribute UserForm userForm) {
// userForm.getName(), userForm.getEmail() 사용 가능
return "userResult";
}
}
@Controller
public class UserController {
@ModelAttribute("categories")
public List<String> categories() {
return Arrays.asList("일반", "VIP", "VVIP");
}
@GetMapping("/user/form")
public String userForm() {
// categories 자동으로 모델에 추가됨
return "userForm";
}
}
@Controller
public class RegistrationController {
@GetMapping("/register")
public String showForm(Model model) {
model.addAttribute("userForm", new UserForm());
return "registerForm";
}
@PostMapping("/register")
public String processForm(@ModelAttribute("userForm") @Valid UserForm userForm,
BindingResult result) {
if (result.hasErrors()) {
return "registerForm";
}
// 회원가입 처리
return "redirect:/welcome";
}
}
DispatcherServlet
@ModelAttribute