(19)Spring Boot 添加JSP支持【从零开始学Spring Boot】

【来也匆匆,去也匆匆,在此留下您的脚印吧,转发点赞评论;

      您的认可是我最大的动力,感谢您的支持】

 

看完本文章您可能会有些疑问,可以查看之后的一篇博客:

81. Spring Boot集成JSP疑问【从零开始学Spring Boot】 编辑

-------------------------------------------------------------------------------------------------------------------------------------

 

这个部分比较复杂,所以单独创建一个工程来进行讲解;

      大体步骤:

(1)            创建Maven web project

(2)            pom.xml文件添加依赖;

(3)            配置application.properties支持jsp

(4)            编写测试Controller

(5)          编写JSP页面

(6)          编写启动类App.java

 

 

1FreeMarker
2
Groovy
3
Thymeleaf Spring 官网使用这个)
4
Velocity
5
JSP (貌似Spring Boot官方不推荐,STS创建的项目会在src/main/resources 下有个templates 目录,这里就是让我们放模版文件的,然后并没有生成诸如 SpringMVC 中的webapp目录)
不过本文还是选择大家都熟悉的JSP来举例,因为使用JSP与默认支持的模版需要特殊处理,所以拿来举例更好。

 

 

1)创建Maven web project

使用Eclipse新建一个Maven Web Project ,项目取名为:

spring-boot-jsp

 

2)在pom.xml文件添加依赖

<!-- spring boot parent节点,引入这个之后,在下面和spring boot相关的就不需要引入版本了; -->

    <parent>

       <groupId>org.springframework.boot</groupId>

       <artifactId>spring-boot-starter-parent</artifactId>

       <version>1.3.3.RELEASE</version>

    </parent>

 

依赖包:

<!-- web支持: 1web mvc; 2restful; 3jackjson支持; 4aop ........ -->

       <dependency>

           <groupId>org.springframework.boot</groupId>

           <artifactId>spring-boot-starter-web</artifactId>

       </dependency>

      

       <!-- servlet 依赖. -->

       <dependency>

           <groupId>javax.servlet</groupId>

           <artifactId>javax.servlet-api</artifactId>

           <scope>provided</scope>

       </dependency>

      

       <!--

           JSTLJSP Standard Tag LibraryJSP标准标签库)是一个不断完善的开放源代码的JSP标签库,是由apachejakarta小组来维护的。JSTL只能运行在支持JSP1.2Servlet2.3规范的容器上,如tomcat 4.x。在JSP 2.0中也是作为标准支持的。

          

           不然报异常信息:

           javax.servlet.ServletException: Circular view path [/helloJsp]: would dispatch back to the current handler URL [/helloJsp] again. Check your ViewResolver setup! (Hint: This may be the result of an unspecified view, due to default view name generation.)

            

        -->

       <dependency>

           <groupId>javax.servlet</groupId>

           <artifactId>jstl</artifactId>

       </dependency>

      

      

      

       <!-- tomcat 的支持.-->

       <dependency>

           <groupId>org.springframework.boot</groupId>

           <artifactId>spring-boot-starter-tomcat</artifactId>

           <scope>provided</scope>

       </dependency>

       <dependency>

           <groupId>org.apache.tomcat.embed</groupId>

           <artifactId>tomcat-embed-jasper</artifactId>

           <scope>provided</scope>

       </dependency>

 

Jdk编译版本:

<build>

       <finalName>spring-boot-jsp</finalName>

       <plugins>

           <plugin>

              <artifactId>maven-compiler-plugin</artifactId>

              <configuration>

                  <source>1.8</source>

                  <target>1.8</target>

              </configuration>

           </plugin>

       </plugins>

    </build>

 

3application.properties配置

上面说了spring-boot 不推荐JSP,想使用JSP需要配置application.properties 
添加src/main/resources/application.properties内容:

# 页面默认前缀目录

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

# 响应页面默认后缀

spring.mvc.view.suffix=.jsp

# 自定义属性,可以在Controller中读取

application.hello=Hello Angel From application

 

4)编写测试Controller

编写类:com.kfit.jsp.controller.HelloController

package com.kfit.jsp.controller;

 

import java.util.Map;

 

import org.springframework.beans.factory.annotation.Value;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

 

/**

 * 测试

 * @author Angel(QQ:412887952)

 * @version v.0.1

 */

@Controller

public class HelloController {

      

       // application.properties 中读取配置,如取不到默认值为Hello Shanhy

    @Value("${application.hello:Hello Angel}")

    private String hello;

   

      

       @RequestMapping("/helloJsp")

       public String helloJsp(Map<String,Object> map){

              System.out.println("HelloController.helloJsp().hello="+hello);

              map.put("hello", hello);

              return "helloJsp";

       }

}

 

5)编写JSP页面

src/main 下面创建 webapp/WEB-INF/jsp 目录用来存放我们的jsp页面helloJsp.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=UTF-8">

<title>Insert title here</title>

</head>

<body>

    helloJsp

    <hr>

    ${hello}

   

</body>

</html>

 

 

(6)编写启动类

编写App.java启动类:

package com.kfit.jsp;

 

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

import org.springframework.boot.context.web.SpringBootServletInitializer;

 

@SpringBootApplication

public class App extends SpringBootServletInitializer {

//    @Override

//    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {

//           return application.sources(App.class);

//    }

      

       public static void main(String[] args) {

              SpringApplication.run(App.class, args);

       }

}

 

右键Run As  Java Application访问:http://127.0.0.1:8080/helloJsp 可以访问到:

helloJsp


Hello Angel From application

 

特别说明:针对el表达式,类似${hello}这个对于servlet的版本是有限制的,2.4版本版本以下是不支持的,是无法进行识别的,请注意。

 Spring Boot 系列博客】

58. Spring Boot国际化(i18n)【从零开始学Spring Boot 

 

57. Spring 自定义properties升级篇【从零开始学Spring Boot 

 

56. spring boot中使用@Async实现异步调用【从零开始学Spring Boot 

 

55. spring boot 服务配置和部署【从零开始学Spring Boot 

 

54. spring boot日志升级篇—logback【从零开始学Spring Boot

 

52. spring boot日志升级篇—log4j多环境不同日志级别的控制【从零开始学Spring Boot 

 

51. spring boot属性文件之多环境配置【从零开始学Spring Boot

 

50. Spring Boot日志升级篇—log4j【从零开始学Spring Boot

 

49. spring boot日志升级篇理论【从零开始学Spring Boot

 

48. spring boot单元测试restfull API【从零开始学Spring Boot

 

47. Spring Boot发送邮件【从零开始学Spring Boot

 

46. Spring Boot中使用AOP统一处理Web请求日志

 

45. Spring Boot MyBatis连接Mysql数据库【从零开始学Spring Boot

 

44. Spring Boot日志记录SLF4J【从零开始学Spring Boot

 

43. Spring Boot动态数据源(多数据源自动切换)【从零开始学Spring Boot

 

42. Spring Boot多数据源【从零开始学Spring Boot

 

41. Spring Boot 使用Java代码创建Bean并注册到Spring中【从零开始学Spring Boot

 

40. springboot + devtools(热部署)【从零开始学Spring Boot 

 

39.4 Spring Boot Shiro权限管理【从零开始学Spring Boot

 

39.3 Spring Boot Shiro权限管理【从零开始学Spring Boot

 

39.2. Spring Boot Shiro权限管理【从零开始学Spring Boot

 

39.1 Spring Boot Shiro权限管理【从零开始学Spring Boot

 

38 Spring Boot分布式Session状态保存Redis【从零开始学Spring Boot 

 

37 Spring Boot集成EHCache实现缓存机制【从零开始学Spring Boot 

 

36 Spring Boot Cache理论篇【从零开始学Spring Boot

 

35 Spring Boot集成Redis实现缓存机制【从零开始学Spring Boot 

 

34Spring Boot的启动器Starter详解【从零开始学Spring Boot

 

33 Spring Boot 监控和管理生产环境【从零开始学Spring Boot

 

32 Spring Boot使用@SpringBootApplication注解从零开始学Spring Boot 

 

31 Spring Boot导入XML配置【从零开始学Spring Boot

 

 

更多查看博客: http://412887952-qq-com.iteye.com/

原文地址:https://www.cnblogs.com/hehehaha/p/6147125.html