maven构建的项目下,不能使用EL、JSTL表达式,且表达式按文本形式原样输出

原因是因为maven生成的web.xml版本太低了,2.5之前web.xml文件中的头定义中,el表达式默认是忽略不解析的,故需要显示声明解析el表达式。

解决步骤一:

在需要使用EL表达式的.jsp文件头加上:

<%@ page isELIgnored="false" %>

解决步骤二:

在web.xml中配置更高的版本:

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
         version="3.0">

</web-app>

另外,所需jar包:

<!-- https://mvnrepository.com/artifact/taglibs/standard -->
        <dependency>
            <groupId>taglibs</groupId>
            <artifactId>standard</artifactId>
            <version>1.1.2</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/javax.servlet/jstl -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>

使用JSTL:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

永久解决方案:

3.2 永久解决
1.上述方法只能解决一个项目问题,但是我们并不想每次创建web项目都要像上面一样,很麻烦,所以我们这里永久性解决

2.我们创建web项目的时候发现使用:分隔了一个路径和jar包名称,前者其实就是Maven仓库坐标,后者就是web项目核心jar包

3.根据提供的坐标(路径)找到maven-archetype-webapp这个jar包

我的路径:d:\maven\MavenRepository\.m2\repository\org\apache\maven\archetypes\maven-archetype-webapp\1.3\


4.我们使用压缩软件打开这个jar包,注意是打开而不是解压,如使用2345好压打开,依次进入以下路径到WEB-INF目录中就可以看到有一个web.xml文件

选择打开


依次进入maven-archetype-webapp-1.3.jar\archetype-resources\src\main\webapp\WEB-INF目录中,找到web.xml


5.双击打开,注意不是解压!将此web.xml的头内容替换为我们需要的头信息(也可以直接删除这个web.xml,然后直接从Tomcat安装目录下的webapp/ROOT/WEB-INF中将web.xml给复制过来替换原来的web.xml),两种方式都行

6.修改完成,保存,然后关闭打开的文件,这个时候压缩软件会提示信息已经改变,是否重新压缩,选择是,修改完成

7.重新创建web工程,出现的web.xml就是我们刚刚修改的web.xml

参考地址:
https://blog.csdn.net/sinat_34104446/article/details/82895337

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值