时间有限,写文章的此时此刻也多少有点疲劳和犯懒,我记录核心信息吧。
需求场景:因开发一个支付项目,技术选型:后台框架:spring boot MVC,模板方面没有使用spring boot推荐的Thymeleaf、Velocity、FreeMarker等模板引擎,继续沿用JSP。
步骤:
1.git hub上检索spring boot jsp sample程序,参考官网的sample再写程序是最轻松省力且保证代码质量和风格的途径;
参考地址:https://github.com/spring-projects/spring-boot/tree/master/spring-boot-samples/spring-boot-sample-tomcat-jsp
2.pom.xml中添加关键依赖:
<!--用tomcat做web服务器-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</dependency>
<!--下面两个依赖是tomcat识别和渲染JSP页面的关键jar包-->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
注:若使用jetty作为web服务器,需要添加如下关键依赖:
sample参考地址:https://github.com/spring-projects/spring-boot/tree/master/spring-boot-samples/spring-boot-sample-jetty-jsp
<dependencies>
<!-- Compile -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
<exclusions>
<exclusion>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-el</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
<!-- Provided -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jetty</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>apache-jsp</artifactId>
<scope>provided</scope>
</dependency>
3. application.properties文件添加配置:
# Spring MVC view 配置
spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp
注:加.mvc跟spring版本有关,高版本都需要加;
4. 写MVC模式的代码(关键代码,全代码可参考上述sample):
@Controller
public class PayController {
//跳至微信公众号收银台页面
@RequestMapping(value = "/topaySuccess")
public String topaySuccess(HttpServletRequest request,Model model) {
return "paysuccess";
}
@RequestMapping(value="/test")
public ModelAndView example(HttpServletRequest request) {
return new ModelAndView("paysuccess");
}
}
注:@Controller 默认返回jsp,即上边返回paysuccess.jsp文件,于是用此注解,可return "jspName";也可以
return new ModelAndView("paysuccess");
Spring 还提供了@RestController,默认返回json,于是一个map<String,String>就会被默认转换为json格式的数据。用此注解,不能直接
return "jspName";只能使用
return new ModelAndView("paysuccess");
5.然后run main方法所在类即可看到效果。
注:IDE: intellij IDEA 2016.2,jdk 1.8,本机运行起来也可以看。