spring-boot 支持多种模版引擎:
- FreeMarker
- Groovy
- Thymeleaf (Spring 官网使用这个)
- Velocity
- JSP (Spring Boot官方不推荐)
接下来我们教大家如何在spring-boot中使用jsp。
1、pom.xml加入支持jsp的依赖:
<dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> </dependency>
将 <packaging>jar</packaging> 改成 <packaging>war</packaging>
改完之后别忘了 maven update。
2、application.properties配置文件加入JSP支持:
# 页面默认前缀目录 spring.mvc.view.prefix=/WEB-INF/page/ # 响应页面默认后缀 spring.mvc.view.suffix=.jsp # 自定义属性,可以在Controller中读取 application.hello=Hello World!
3、创建webapp文件夹以及页面:
4、编写jsp页面:
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>sprint-boot jsp</title> </head> <body> 当前系统时间:<br /> <font size=3 color=red>Time:${time }</font> <br /> Message:${message } </body> </html>
5、编写controller代码:
package nc.edu.nuc.Test.controller; import java.util.Date; import javax.servlet.http.HttpServletRequest; import nc.edu.nuc.Test.entity.Test; import nc.edu.nuc.Test.service.TestService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @Controller public class TestController { private static final Logger logger = LoggerFactory.getLogger(TestController.class); @Autowired private TestService testService; @RequestMapping("/test") @ResponseBody public String test(HttpServletRequest request) { String name = request.getParameter("name"); Test findByName = testService.findByName(name); logger.info("test....{}",name); return findByName.toString(); } @RequestMapping("/testJsp") public String testJsp(HttpServletRequest request,Model model) { String name = request.getParameter("name"); Test findByName = testService.findByName(name); logger.info("testJsp....{}",findByName.toString()); model.addAttribute("time", new Date()); model.addAttribute("message", findByName.getName()); return "index"; } }
这里用法和springmvc的一样,支持modelView和model...