SpringMVC是一种基于Java的轻量级框架,用于开发Web应用程序。它基于MVC(Model-View-Controller)设计模式,将应用程序分为模型、视图和控制器三个部分,以实现松耦合的开发方式。下面是一个简单的示例代码,演示如何使用SpringMVC开发一个基本的Web应用程序。
首先,我们需要在项目的pom.xml文件中添加SpringMVC的依赖项。
<dependencies>
<!-- Spring MVC -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.3.10</version>
</dependency>
</dependencies>
接下来,我们需要创建一个配置类来配置SpringMVC。
@Configuration
@EnableWebMvc
@ComponentScan(basePackages = "com.example.controller")
public class AppConfig implements WebMvcConfigurer {
// 配置视图解析器
@Bean
public ViewResolver viewResolver() {
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setPrefix("/WEB-INF/views/");
viewResolver.setSuffix(".jsp");
return viewResolver;
}
// 配置静态资源处理
@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
configurer.enable();
}
}
在上面的配置类中,我们使用了@EnableWebMvc
注解来启用SpringMVC,并使用@ComponentScan
注解来扫描com.example.controller
包下的控制器类。我们还定义了一个ViewResolver
来配置JSP视图解析器,并使用configureDefaultServletHandling
方法来处理静态资源。
接下来,我们需要创建一个控制器类来处理HTTP请求。
@Controller
public class UserController {
@RequestMapping("/")
public String home(Model model) {
model.addAttribute("message", "Hello, SpringMVC!");
return "home";
}
@RequestMapping("/user/{id}")
public String getUser(@PathVariable("id") int id, Model model) {
// 根据ID查询用户信息
User user = userService.getUserById(id);
model.addAttribute("user", user);
return "user";
}
}
在上面的控制器类中,我们使用了@Controller
注解来标识这是一个控制器类,并使用@RequestMapping
注解来映射URL到方法。在home
方法中,我们将一个消息添加到Model
中,并返回视图名称。在getUser
方法中,我们使用@PathVariable
注解来获取URL中的参数,并根据ID查询用户信息。
最后,我们需要创建JSP视图来显示数据。
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<title>SpringMVC Example</title>
</head>
<body>
<h1>${message}</h1>
<table>
<tr>
<th>ID</th>
<th>Name</th>
</tr>
<tr>
<td>${user.id}</td>
<td>${user.name}</td>
</tr>
</table>
</body>
</html>
在上面的JSP视图中,我们使用${message}
和${user.id}
等表达式来显示数据。
以上就是一个简单的SpringMVC的示例代码。通过配置类和控制器类,我们可以将请求映射到相应的处理方法,并将数据传递给JSP视图来进行展示。