springbot 使用jsp

war打包方式,添加web组件

springbot 使用jsp_第1张图片

添加web组件后,出现了ServletInitializer这个类,

package com.cxy;

import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;

public class ServletInitializer extends SpringBootServletInitializer {

	@Override
	protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
		return application.sources(LessonjspApplication.class);
	}

}

它继承了SpringBootServletInitializer这个父类,而SpringBootServletInitializer这个类是springboot提供的web程序初始化的入口,当我们使用外部容器(比如使用外部tomcat运行项目)运行项目时会自动加载并且装配。
实现了SpringBootServletInitializer的子类需要重写一个configure方法,方法内自动根据xxxxApplication.class的类型创建一个SpringApplicationBuilder交付给springboot框架来完成初始化运行配置。

2.pom中添加jsp,servlet容器,jstl标签的支持

springboot内部集成了tomcat组件,这里我们就不需要重复引入tomcat组件。

        
		
			javax.servlet
			javax.servlet-api
        
		
        
		
			org.apache.tomcat.embed
			tomcat-embed-jasper
        
        
			javax.servlet
			jstl
		

3.配置视图

1. 在main目录下创建webapp文件夹
2. 在webapp下创建jsp文件夹,以及jsp

3. 修改application.properties文件让springmvc支持视图的跳转,配置preffix以及suffix路径转发规则,

目录指向为/main/webapp/jsp,

spring.mvc.view.suffix=.jsp
spring.mvc.view.prefix=/WEB-INF/jsp/

springbot 使用jsp_第2张图片

4.controller层

@Controller
public class MyController {
    @RequestMapping("/hello")
    public String hello(Model m) {
        m.addAttribute("now", DateFormat.getDateTimeInstance().format(new Date()));
        return "hello";
    }
}

可以看到上图我们在MyController配置文件内添加了hello()方法配置了@RequestMapping注解来描述hello()方法是一个可以被springmvc管理的请求视图。我们的hello()方法返回值这里是"hello"。
为什么我们返回"hello",还记得上述步骤中配置的application.properties文件的springmvc请求前缀以及后缀,那么当我们访问 /hello 时springmvc就会去找/webapp/WEB-INF/jsp/hello.jsp文件。


springbot 使用jsp_第3张图片

你可能感兴趣的:(框架)