Spring Boot adds JSP support [transfer]

   General steps:

(1)             Create a Maven web project ;

(2)             Add dependencies to the pom.xml file;

(3)             Configure application.properties to support jsp

(4)             Write a test Controller

(5)           WriteJSPpages

(6)           Write the startup classApp.Java

 

 

 

1 , FreeMarker
2
, Groovy
3
, Thymeleaf ( spring  official website uses this)
4
, Velocity
5
, JSP (It seems that Spring Boot does not officially recommend, STS-created projects will have a templates directory under src/main/resources, here is let us The template file is placed, and then the webapp directory such as SpringMVC is not generated. However, this article still chooses the familiar JSP as an example, because the use of JSP and the default supported template requires special processing, so it is better to use it as an example.

 

 

( 1 ) Create a Maven web project

Use Eclipse to create a new Maven Web Project  and name the project:

spring-boot-jsp

 

( 2 ) Add dependency in pom.xml

<!-- spring boot parent node, after introducing this, there is no need to introduce the version related to spring boot below ; -->

    <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

 

Special note: For el expressions, similar to ${hello} , the version of servlet is limited, and versions below 2.4

Guess you like

Origin http://10.200.1.11:23101/article/api/json?id=326945980&siteId=291194637