springboot同时支持jsp+vue页面启动

1、参考文档链接

        参考上面文档边百度边改,现在可以了,分享下

2、Java项目目录结构

3、pom.xml内容

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">  
  <modelVersion>4.0.0</modelVersion>  
  <groupId>com.wxs</groupId>  
  <artifactId>test</artifactId>  
  <version>1.0-SNAPSHOT</version>  
  <packaging>war</packaging>  
  <name>test</name>  
  <!-- FIXME change it to the project's website -->  
  <url>http://www.example.com</url>  
  <properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>  
    <maven.compiler.source>17</maven.compiler.source>  
    <maven.compiler.target>17</maven.compiler.target> 
  </properties>  
  <parent> 
    <groupId>org.springframework.boot</groupId>  
    <artifactId>spring-boot-starter-parent</artifactId>  
    <version>1.5.9.RELEASE</version> 
  </parent>  
  <dependencies> 
    <dependency> 
      <groupId>org.springframework.boot</groupId>  
      <artifactId>spring-boot-starter-web</artifactId> 
    </dependency>  
    <!--要支持jsp需 添加servlet依赖模块 -->
    <dependency> 
      <groupId>javax.servlet</groupId>  
      <artifactId>javax.servlet-api</artifactId>  
    </dependency>
    <!-- 要支持jsp需 添加jstl标签库依赖模块 -->
    <dependency> 
      <groupId>javax.servlet</groupId>  
      <artifactId>jstl</artifactId> 
    </dependency>  
    <!-- 要支持jsp需 使用jsp引擎,springboot内置tomcat没有此依赖 -->
    <dependency> 
      <groupId>org.apache.tomcat.embed</groupId>  
      <artifactId>tomcat-embed-jasper</artifactId>  
    </dependency>
    <dependency> 
      <groupId>junit</groupId>  
      <artifactId>junit</artifactId>  
      <version>4.11</version>  
      <scope>test</scope> 
    </dependency>
 <!-- 要支持html 需添加thymeleaf -->
    <dependency>
      <groupId>org.thymeleaf</groupId>
      <artifactId>thymeleaf-spring5</artifactId>
      <version>3.0.15.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>org.thymeleaf</groupId>
      <artifactId>thymeleaf</artifactId>
      <version>3.0.15.RELEASE</version>
    </dependency>
  </dependencies>  
  <build>
      <resources>
          <!--要支持jsp需  springboot使用的web资源要编译到META-INF/resources-->
          <resource>
              <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>
    <pluginManagement> 
      <!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->  
      <plugins>
        <plugin> 
          <artifactId>maven-clean-plugin</artifactId>  
          <version>3.1.0</version> 
        </plugin>  
        <!-- default lifecycle, jar packaging: see https://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_jar_packaging -->  
        <plugin> 
          <artifactId>maven-resources-plugin</artifactId>  
          <version>3.0.2</version> 
        </plugin>  
        <plugin> 
          <artifactId>maven-compiler-plugin</artifactId>  
          <version>3.8.0</version> 
        </plugin>  
        <plugin> 
          <artifactId>maven-surefire-plugin</artifactId>  
          <version>2.22.1</version> 
        </plugin>  
        <plugin> 
          <artifactId>maven-jar-plugin</artifactId>  
          <version>3.0.2</version> 
        </plugin>  
        <plugin> 
          <artifactId>maven-install-plugin</artifactId>  
          <version>2.5.2</version> 
        </plugin>  
        <plugin> 
          <artifactId>maven-deploy-plugin</artifactId>  
          <version>2.8.2</version> 
        </plugin>  
        <!-- site lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#site_Lifecycle -->  
        <plugin> 
          <artifactId>maven-site-plugin</artifactId>  
          <version>3.7.1</version> 
        </plugin>  
        <plugin> 
          <artifactId>maven-project-info-reports-plugin</artifactId>  
          <version>3.0.0</version> 
        </plugin> 
      </plugins> 
    </pluginManagement> 
  </build> 
</project>

4、WebConfig内容

package com.wxs.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.format.FormatterRegistry;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.validation.MessageCodesResolver;
import org.springframework.validation.Validator;
import org.springframework.web.method.support.HandlerMethodArgumentResolver;
import org.springframework.web.method.support.HandlerMethodReturnValueHandler;
import org.springframework.web.servlet.HandlerExceptionResolver;
import org.springframework.web.servlet.ViewResolver;
import org.springframework.web.servlet.config.annotation.*;
import org.springframework.web.servlet.view.InternalResourceViewResolver;
import org.thymeleaf.spring5.SpringTemplateEngine;
import org.thymeleaf.spring5.templateresolver.SpringResourceTemplateResolver;
import org.thymeleaf.spring5.view.ThymeleafViewResolver;
import org.thymeleaf.templateresolver.ITemplateResolver;

import java.util.List;

    @Configuration
    @EnableWebMvc
    public class WebConfig implements WebMvcConfigurer {
        @Bean
        public ViewResolver viewResolver() {
            InternalResourceViewResolver resolver = new InternalResourceViewResolver();
            resolver.setPrefix("/jsp/");
            resolver.setSuffix(".jsp");
            resolver.setViewNames("*");
            resolver.setOrder(2);
            return resolver;
        }

        @Bean
        public ITemplateResolver templateResolver() {
            SpringResourceTemplateResolver templateResolver = new SpringResourceTemplateResolver();
            templateResolver.setTemplateMode("HTML5");
            templateResolver.setPrefix("/");
            templateResolver.setSuffix(".html");
            templateResolver.setCharacterEncoding("utf-8");
            templateResolver.setCacheable(false);
            return templateResolver;
        }

        @Bean
        public SpringTemplateEngine templateEngine() {
            SpringTemplateEngine templateEngine = new SpringTemplateEngine();
            templateEngine.setTemplateResolver(templateResolver());
            // templateEngine
            return templateEngine;
        }

        @Bean
        public ThymeleafViewResolver viewResolverThymeLeaf() {
            ThymeleafViewResolver viewResolver = new ThymeleafViewResolver();
            viewResolver.setTemplateEngine(templateEngine());
            viewResolver.setCharacterEncoding("utf-8");
            viewResolver.setOrder(1);
            viewResolver.setViewNames(new String[]{"dist/*", "vue/*"});
            return viewResolver;
        }

    @Override
    public void configurePathMatch(PathMatchConfigurer pathMatchConfigurer) {

    }

    @Override
    public void configureContentNegotiation(ContentNegotiationConfigurer contentNegotiationConfigurer) {

    }

    @Override
    public void configureAsyncSupport(AsyncSupportConfigurer asyncSupportConfigurer) {

    }

    @Override
        public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
            configurer.enable();
        }

    @Override
    public void addFormatters(FormatterRegistry formatterRegistry) {

    }

    @Override
    public void addInterceptors(InterceptorRegistry interceptorRegistry) {

    }

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/img/**").addResourceLocations("/img/");
        registry.addResourceHandler("/static/**").addResourceLocations("/WEB-INF/" + "/static/");
        registry.addResourceHandler("/js/**").addResourceLocations("/dist/js/");
        registry.addResourceHandler("/css/**").addResourceLocations("/dist/css/");
        registry.addResourceHandler("/wxs/**").addResourceLocations("file:C:/Users/amd/Desktop/");

    }

    @Override
    public void addCorsMappings(CorsRegistry corsRegistry) {

    }

    @Override
    public void addViewControllers(ViewControllerRegistry viewControllerRegistry) {

    }

    @Override
    public void configureViewResolvers(ViewResolverRegistry viewResolverRegistry) {

    }

    @Override
    public void addArgumentResolvers(List<HandlerMethodArgumentResolver> list) {

    }

    @Override
    public void addReturnValueHandlers(List<HandlerMethodReturnValueHandler> list) {

    }

    @Override
    public void configureMessageConverters(List<HttpMessageConverter<?>> list) {

    }

    @Override
    public void extendMessageConverters(List<HttpMessageConverter<?>> list) {

    }

    @Override
    public void configureHandlerExceptionResolvers(List<HandlerExceptionResolver> list) {

    }

    @Override
    public void extendHandlerExceptionResolvers(List<HandlerExceptionResolver> list) {

    }

    @Override
    public Validator getValidator() {
        return null;
    }

    @Override
    public MessageCodesResolver getMessageCodesResolver() {
        return null;
    }
}

5、TestController内容

package com.wxs.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;


@Controller
public class TestController {
    @RequestMapping("/jsp")
    public String jsp(Model model) {
        return "index2";
    }

    @GetMapping("/vue")
    public String vue(Model model) {
        return "dist/index";
    }
}

6、测试

http://localhost:6066/jsp   jsp请求

http://localhost:6066/vue  vue请求

7、完事了~~~

相关推荐

  1. SpringBoot项目中同时支持https和http协议

    2024-04-13 07:54:05       24 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-13 07:54:05       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-13 07:54:05       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-13 07:54:05       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-13 07:54:05       18 阅读

热门阅读

  1. HiveSQL基础Day04

    2024-04-13 07:54:05       13 阅读
  2. SQL Server的索引选择

    2024-04-13 07:54:05       13 阅读
  3. 神经网络和反向传播算法快速入门

    2024-04-13 07:54:05       14 阅读
  4. 基于ethers.js连接小狐狸快速开发

    2024-04-13 07:54:05       15 阅读
  5. CentOS 7下Vim常用工作模式详解

    2024-04-13 07:54:05       19 阅读
  6. Android OpenCV 概述、优缺点及应用场景分析

    2024-04-13 07:54:05       14 阅读
  7. Linux Zookeeper 安装

    2024-04-13 07:54:05       17 阅读