- Spring Boot中使用Spring MVC的示例解析
在开始使用Spring MVC之前,我们需要先安装并配置好Spring Boot和Spring MVC。安装时我们可以使用Spring官方提供的脚手架工具spring initilizr,也可以直接在IDE中创建Spring Boot项目并选择其中包含Spring MVC的依赖。
安装完毕之后,我们需要在Spring Boot的配置文件application.properties中添加如下代码:
spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp
这段代码的作用是设置Spring MVC视图解析器,从而让Spring MVC能够正确渲染JSP视图。
然后,我们就可以开始编写控制器类了。Spring MVC的控制器类通常要加上注解@Controller,而具体处理请求的方法则需要使用@RequestMapping注解。下面是一个简单的示例:
@Controller
public class HelloController {
@RequestMapping("/")
public String index() {
return "index";
}
@RequestMapping("/hello")
public ModelAndView hello() {
ModelAndView mav = new ModelAndView();
mav.addObject("message", "Hello World");
mav.setViewName("hello");
return mav;
}
}
这个控制器类包含了两个处理请求的方法。其中,index()方法处理的是根目录的请求,返回值为index,然后Spring MVC会使用视图解析器找到index.jsp并渲染页面;hello()方法则处理的是/hello路径的请求,返回一个ModelAndView对象,其中包含了要渲染的数据和视图名称,Spring MVC会使用视图解析器找到hello.jsp并渲染页面。
至此,我们的示例已经完成了。运行Spring Boot应用,在浏览器输入http://localhost:8080/和http://localhost:8080/hello,就可以看到渲染后的页面了。
- 示例说明一:处理静态资源
除了控制器类之外,我们还需要处理一些静态资源,如样式表、JavaScript文件、图片等等。Spring MVC提供了一个简单的方式来处理这些静态资源:在我们的webapp目录下创建一个名为static的目录,然后在该目录下创建子目录来存放不同类型的资源。
例如,我们创建了一个名为static\css的目录来存放CSS文件,那么在我们的HTML页面中,只需引用以下代码即可:
<link href="/css/style.css" rel="stylesheet" type="text/css" />
Spring MVC会自动将这个请求映射到static目录下的css/style.css文件上,从而正确地返回该CSS文件并渲染页面。
- 示例说明二:处理表单提交
处理表单提交也是Spring MVC的重要功能之一。Spring MVC提供了一个简单的方式来接收并处理用户提交的表单数据,只需这样做:
@RequestMapping(value="/register", method=RequestMethod.POST)
public ModelAndView register(HttpServletRequest request,
HttpServletResponse response, User user) {
// 处理user对象...
ModelAndView mav = new ModelAndView();
mav.addObject("user", user);
mav.setViewName("success");
return mav;
}
在上述示例中,我们使用了@RequestMapping注解,指定了请求路径和请求方法类型。同时我们还需要传递HttpServletRequest和HttpServletResponse对象以及一个名为User的类,这个类将会自动地映射到提交的表单数据中。最后,我们返回一个ModelAndView对象,其中包含了要渲染的数据和视图名称,Spring MVC会使用视图解析器找到success.jsp并渲染页面。
以上就是Spring Boot中使用Spring MVC的一些示例和解释。希望对您有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Spring Boot中使用Spring MVC的示例解析 - Python技术站