Springboot 支持jsp 及打包相关问题

5 篇文章 0 订阅
2 篇文章 0 订阅

1.普通Springboot不支持 jsp之前,打成jar 包时遇到  提示找不到主类和没有主清单属性,说明没按照springboot的打包方式打包,解决有两种情况

     第一种,

在pom文件中引入了 <parent></parent>标签的

 <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.5.RELEASE</version>
    </parent>

    那么只需要在<plugins></plugins>标签中加入springboot的打包方式的插件就可以


        <plugins>
            
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>

    然后mvn clean package 就可以在target文件中生成jar 了,就可以直接java -jar  xxxxx.jar 方式运行了

第二种

直接在 <dependencies></dependencies>中引入jar包,并没有引入<parent></parent>的

   <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <version>2.0.5.RELEASE</version>
        </dependency>
    </dependencies>

需要在spring-boot-maven-plugin时加些设置,如下

<plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>2.0.5.RELEASE</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

然后打包     运行

 

二,让springboot 支持jsp 并打包,分为打成jar包和打成war包两种

先让他支持jsp

要支持jsp需要引入tomcat支持jsp的解析器,以及支持jsp语法的jar包

<dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-jasper</artifactId>
            <version>8.5.34</version>
        </dependency>
         

        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>

然后你的jsp文件要放在哪儿呢,按照springboot源码里的写死的,只能放在这几个地方,下面的源码

首先

点进去

再点进去

也就是只能放在这几个位置,他才会初始化解析器,在此我只想说,这尼玛写死一点都不是spring的风格,后面看看能不能动一动,也就是这三种

一般都是src/mian/app这种,毕竟是传统老web开发者了

这里面会有一个问题就是新建webapp/WEB-INF之后,创建jsp文件没有提示,也无法jsp进行编译检查

这样做就是有提示了,放个网图

然后就可以在jsp文件下创建jsp文件了。

jsp文件创建好了,那么要让请求和视图联系起来,还得配置视图解析器

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

Controller里面如下,类上用@Controller注解不要用@RestController注解

@RequestMapping("/index")
public String index(HttpServletRequest request){

    request.setAttribute("appName","eureka_client");
    log.info("index...");
     return "index";

}

然后就可以启动访问了

以上面这种方式支持jsp的话,打成war包可以直接java -jar XXXX.war访问jsp ,但是打成jar的话,就需要在<build></build>加入如下配置

<resources>
            <resource>
                <!-- 打包时将jsp文件拷贝到META-INF目录下-->
                <!-- 指定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>

才能打成jar包访问

 

 

 

 

 

 

 

 

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值