下面是对“14个编写Spring MVC控制器的实用小技巧(吐血整理)”的完整攻略:
1. 引入必要的依赖
在开始编写Spring MVC控制器之前,我们需要在项目中引入Spring MVC相关的依赖。通常情况下,我们需要在pom.xml文件中引入以下依赖:
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.3.8.RELEASE</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<scope>provided</scope>
</dependency>
</dependencies>
2. 编写控制器类
接下来,我们需要编写控制器类。在Spring MVC中,一个控制器类通常需要使用@Controller注解来标记,以及@RequestMapping注解来映射URL。例如:
@Controller
@RequestMapping("/user")
public class UserController {
@RequestMapping(value = "/{id}", method = RequestMethod.GET)
public String getUser(@PathVariable int id, Model model) {
User user = userService.getUserById(id);
model.addAttribute("user", user);
return "user";
}
@RequestMapping(value = "/add", method = RequestMethod.POST)
public String addUser(@ModelAttribute("user") User user) {
userService.addUser(user);
return "redirect:/user/" + user.getId();
}
}
上述代码中,我们定义了一个UserController控制器类,用于处理与用户相关的请求。例如,我们可以使用http://example.com/user/1地址来查询用户ID为1的信息,并将其传递给视图模板进行显示。同时,我们也定义了一个/user/add地址用于添加用户信息。
3. 消息资源和视图模板
在编写完控制器类后,我们需要定义视图模板和相关的消息资源。Spring MVC使用MessageSource类来管理消息资源,使用ViewResolver类来管理视图模板。例如:
<bean id="messageSource"
class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basename" value="messages" />
</bean>
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/" />
<property name="suffix" value=".jsp" />
</bean>
上述代码中,我们定义了消息资源的文件名为messages,将视图模板存放在/WEB-INF/views/目录下,并将其后缀名设为.jsp。
4. 使用@ModelAttribute注解
在Spring MVC中,我们可以使用@ModelAttribute注解来将表单数据绑定到控制器方法的参数上。例如:
@RequestMapping(value = "/add", method = RequestMethod.POST)
public String addUser(@ModelAttribute("user") User user) {
userService.addUser(user);
return "redirect:/user/" + user.getId();
}
上述代码中,我们使用@ModelAttribute("user")来绑定表单数据到User对象上。当我们向/user/add地址提交表单时,Spring MVC会将表单数据绑定到名为user的User对象上,并传递给addUser方法进行处理。
5. 使用@Valid注解
在Spring MVC中,我们可以使用@Valid注解来校验表单数据。例如:
@RequestMapping(value = "/add", method = RequestMethod.POST)
public String addUser(@Valid @ModelAttribute("user") User user, BindingResult result) {
if (result.hasErrors()) {
return "add_user_form";
}
userService.addUser(user);
return "redirect:/user/" + user.getId();
}
上述代码中,我们使用@Valid注解对User对象进行校验。如果校验不通过,我们将返回一个名为add_user_form的视图模板,让用户重新填写表单。如果校验通过,我们将调用userService.addUser方法将用户信息保存到数据库,并重定向到刚刚添加的用户页面。在这个过程中,我们可以通过BindingResult对象来获取表单数据校验结果。
至此,我们就完成了对“14个编写Spring MVC控制器的实用小技巧(吐血整理)”完整攻略的讲解。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:14个编写Spring MVC控制器的实用小技巧(吐血整理) - Python技术站