请允许我为您详细讲解“详解如何全注解方式构建SpringMVC项目”的完整攻略。
介绍
Spring MVC是当前最流行的Java Web框架之一,官方文档提供了多样的配置方式,其中注解式配置最为简洁。本文介绍全注解方式构建Spring MVC的过程。
步骤
1. 引入依赖
在Maven或Gradle中加入Spring MVC和其他相关依赖,例如:
<!-- Spring MVC -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- Jackson JSON Processor -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson.version}</version>
</dependency>
2. 配置DispatcherServlet
在web.xml中配置DispatcherServlet:
<servlet>
<servlet-name>myDispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring-config.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
<async-supported>true</async-supported>
</servlet>
<servlet-mapping>
<servlet-name>myDispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
上述配置中,我们创建了一个名为“myDispatcherServlet”的servlet,并将其映射到根路径(“/”)下。同时,通过init-param标签指定了Spring MVC的配置文件位置。
3. 配置Spring容器
在之前的web.xml中,我们指定了Spring MVC的配置文件位置。现在在该位置下新建一个spring-config.xml文件,用于配置Spring容器。我们使用注解配置方式:
<context:component-scan base-package="com.example.controller"/>
<mvc:annotation-driven/>
上述配置将自动扫描“com.example.controller”包下的所有类,并为其中的bean做相应的管理,同时开启了Spring MVC注解支持。
4. 配置Controller
创建一个Controller类,其中包含请求映射和处理逻辑:
@Controller
public class SampleController {
@GetMapping("/")
public String home(Model model) {
model.addAttribute("message", "Hello World");
return "home";
}
@PostMapping("/submit")
public String submit(@RequestBody SampleData data) {
System.out.println(data.getValue());
return "redirect:/";
}
}
上述代码包含两个请求处理逻辑。第一个逻辑使用@GetMapping注解定义了一个get请求,映射到根路径“/”。在这个逻辑中,我们将一个信息加入了Model中,然后指定视图名称为“home”。第二个逻辑使用@PostMapping注解定义了一个post请求,映射到“/submit”路径。在这个逻辑中,我们接收了一个SampleData类型的参数,并打印了其值。
5. 配置视图解析器
在spring-config.xml文件中添加以下配置:
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/"/>
<property name="suffix" value=".jsp"/>
</bean>
上述配置将视图名称通过前缀“/WEB-INF/views/”和后缀“.jsp”拼接起来,形成真实的视图路径。
6. 创建jsp视图
在“/WEB-INF/views/”目录下,创建一个名为“home.jsp”的视图文件。该文件中可以使用上述Controller中加入的信息:
<!DOCTYPE html>
<html>
<head>
<title>Home Page</title>
</head>
<body>
<h1>${message}</h1>
<form method="POST" action="/submit">
<input name="value"/>
<button type="submit">Submit</button>
</form>
</body>
</html>
上述代码中,我们使用了EL表达式取出之前Controller中加入的信息,并制作了一个简单的表单。
7. 启动应用
配置完成后,使用Servlet容器将应用部署到服务器上即可。
示例
我们来看两个具体的示例:
例1 - 处理文件上传
我们修改Controller代码:
@Controller
public class UploadController {
@PostMapping("/upload")
public String upload(@RequestParam("file") MultipartFile file) {
// 处理上传的文件
return "redirect:/";
}
}
上述代码使用@RequestParam注解,映射了一个名为“file”的请求参数,表示要上传的文件内容。
例2 - 处理异常
我们依然是在Controller中修改代码:
@ControllerAdvice
public class ExceptionHandlerController {
@ExceptionHandler(Exception.class)
public String handleException(Exception e, Model model) {
model.addAttribute("message", "出错了:" + e.getMessage());
return "error";
}
}
上述代码中,我们创建了一个@ControllerAdvice注解修饰的类,用于处理Controller中抛出的所有Exception类型异常。在handleException方法中,我们将捕获到的异常信息加入Model中,并返回了一个名为“error.jsp”的视图。这个视图的定义方法和之前提供的例子类似。
结语
全注解方式构建Spring MVC项目的过程较为简洁,但也需要正确理解和掌握每一个步骤。本文提供了详细的步骤和示例,希望能对读者有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解如何全注解方式构建SpringMVC项目 - Python技术站