准备学习SpringBoot,但是配置好项目后发现可以给前台传输json数据,就是不能跳转jsp页面,查找好多资料发现SpringBoot官网强烈不推荐使用jsp,但是可以使用jsp。官方文档:https://docs.spring.io/spring-boot/docs/1.5.5.RELEASE/reference/htmlsingle/#boot-features-spring-mvc-template-engines
可是自己怎么配置都访问不到jsp,可以走到后台。
启动类配置如下:
@Configuration
@EnableAutoConfiguration
@ComponentScan
//@SpringBootApplication
/*相当于上面三个注解 @SpringBootApplication = (默认属性)@Configuration + @EnableAutoConfiguration + @ComponentScan。*/
public class ApplicationMain {
@RequestMapping("/")
//@ResponseBody
String home() {
return "index";
}
public static void main(String[] args) {
SpringApplication.run(ApplicationMain.class, args);
}
}
pom.xml 配置如下:
org.springframework.boot
spring-boot-starter-parent
1.5.9.RELEASE
org.springframework.boot
spring-boot-starter-web
jstl
jstl
1.2
application.properties配置如下:
#内嵌tomcat配置
server.port=8088
server.tomcat.uri-encoding=UTF-8
#springmvc 页面跳转
spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp
项目结构如下:
Controller内容如下:
@Controller
@RequestMapping(value = "/freeMarkerController")
public class FreeMarkerController {
@GetMapping("index")
public String index() {
System.out.println("------index------");
return "index";
}
@RequestMapping("HelloWorld")
@ResponseBody
public String HelloWorld() {
System.out.println("-------HelloWorld------");
return "HelloWorld";
}
}
访问http://localhost:8088/mark/HelloWorld 有数据
访问 http://localhost:8088/mark/index 会出现
Whitelabel Error Page
This application has no explicit mapping for /error, so you are seeing this as a fallback.
Tue Jan 02 11:53:32 CST 2018
There was an unexpected error (type=Not Found, status=404).
No message available
于是,查找官方文档
在官方文档中找到官方JSP示例 其中:
pom.xml 必须添加对jsp的支持:
org.apache.tomcat.embed
tomcat-embed-jasper
provided
其中出现非常坑的问题:在Myeclipse 配置好了很快就能运行成功。在idea中怎么配置都运行失败,然后稀里糊涂的又好了。很坑,浪费了好长时间在这。
访问 http://localhost:8088/mark/index 就好跳转到jsp页面。
以上就是springBoot跳转jsp 的配置。后续进行学习thymeleaf模板,另外
org.freemarker
freemarker
${freemarker.version}
有模板这个jar的时候 SpringBoot会去找模板 默认路径是classpath:/templates/*.html。