springboot 集成jsp

springboot 集成jsp 踩了一些坑,记录一下。已经运行成功,这是jar包的方式

首先继承SpringBootServletInitializer重写configure方法

@MapperScan("com.example.demo.mapper")
@SpringBootApplication
public class SpringBootApplicationStart extends SpringBootServletInitializer {

   /**
    * 需要继承SpringBootServletInitializer类并重写其中configure方法
    * @param application
    * @return
    */
   @Override
   protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
      return application.sources(SpringBootApplicationStart.class);
   }

   public static void main(String[] args) {
      SpringApplication.run(SpringBootApplicationStart.class, args);
   }
}

     配置文件中添加一下依赖

 
 
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
</dependency>
<!--用于编译jsp-->
<dependency>
    <groupId>org.apache.tomcat.embed</groupId>
    <artifactId>tomcat-embed-jasper</artifactId>
    <!--<scope>provided</scope>-->
</dependency>
<build>
    <plugins>
        <!-- spring dev -->
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <version>1.4.2.RELEASE</version>
            <configuration>
                <!--启动类-->
                <mainClass>com.example.demo.SpringBootApplicationStart</mainClass>
            </configuration>
            <executions>
                <execution>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
            <dependencies>
                <!-- spring热部署 -->
                <dependency>
                    <groupId>org.springframework</groupId>
                    <artifactId>springloaded</artifactId>
                    <version>1.2.6.RELEASE</version>
                </dependency>
            </dependencies>
        </plugin>
        <!-- 忽略无web.xml警告 -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <configuration>
                <failOnMissingWebXml>false</failOnMissingWebXml>
            </configuration>
        </plugin>
    </plugins>
    <resources>
        <!-- 打包时将jsp文件拷贝到META-INF目录下 -->
        <resource>
            <!-- 指定resources插件处理哪个目录下的资源文件 -->
            <directory>src/main/webapp</directory>
            <!--注意此次必须要放在此目录下才能被访问到 -->
            <targetPath>META-INF/resources</targetPath>
            <includes>
                <include>**/**</include>
            </includes>
        </resource>
        <resource>
            <directory>src/main/resources</directory>
            <includes>
                <include>**/**</include>
            </includes>
            <filtering>false</filtering>
        </resource>

    </resources>
</build>

    application.yml中添加:

spring:
  mvc:
    view:
      prefix: /WEB-INF/jsp/
      suffix: .jsp


Controller :

 
 
@Controller
public class UserController {

    @Autowired
    private UserService userService;

    @RequestMapping("getUser")
    @ResponseBody
    public User getUser(Integer id){
        return userService.getUserByKey(id);
    }

    @RequestMapping("go")
    public String go(){
        return "success";
    }
    
}


访问成功

可以访问了,但是没有测试静态资源能不能访问。springboot 默认是不支持jsp的,springboot 默认支持thymeleaf。但是现在的项目一般都是前后端分离,使用springboot的时候不需要去考虑返回view



猜你喜欢

转载自blog.csdn.net/q845301261/article/details/80021712
今日推荐