手机版

解决IDEA中Maven项目中JSTL标签无效的问题

时间:2021-08-29 来源:互联网 编辑:宝哥软件园 浏览:

代码如下(忽略编译错误,不影响结果)

Maven最近才在IDEA中使用,Eclipse之前一直在使用。这次踩到坑了,跟大家分享一下。

当我准备在IDEA上用Maven创建SSM项目时,发现页面的JSTL标签没有生效,直接输出EL标签和导入的C标签。

比如上图最后一页显示了${name},但是没有输出我定义的“呵呵”。在pom.xml文件中有一个jstl的依赖包,但是它并没有生效。

我尝试了很多方法,在网上找到了很多信息。我记得我用IDEA创建一个普通的web项目的时候,导入C标签的时候会报错,需要手动添加jstl的dtd文件,所以尝试一下也没用。

最后,我打开项目中的web.xml文件,发现标题信息是2.3版本,如下图所示。

可能在2.3版本中,isELIgnored默认不为false(这只是我的猜测),所以在jsp页面中添加% @ page isel igned=“false %”,jstl就会生效。

然而,将这个命令添加到每个jsp页面是一项繁琐的任务,所以用更高的版本替换web.xml的标题信息。

我记得2.4版本默认设置isELIgnored=false,但是版本不要太高,应该对应tomcat版本,比如4.01版本对应tomcat9.0,3.0版本对应tomcat7。

可以自己搜索相关对应版本,这里就不细说了。提供web.xml的几个标题信息

2.4

?xml版本='1.0 '编码='UTF-8 '?web-app id='WebApp_9 '版本=' 2.4 ' xmlns=' http://Java . sun.com/XML/ns/J2EE ' xmlns : xsi=' http://www . w3 . org/2001/XMLSchema-instance ' xmlns : xsi=' http://www . w3 . org/2001/XMLSchema-instance ' xsi 3360 schema location=' 3http://Java . sun

?xml版本='1.0 '编码='UTF-8 '?web-app xmlns=' http://Java . sun.com/XML/ns/javaee ' xmlns : xsi=' http://www . w3 . org/2001/XMLSchema-instance ' xsi : schema location=' http://Java . sun.com/XML/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd'版本='2.5' /web-app3.0

?xml版本='1.0 '编码='UTF-8 '?web-app版本=' 3.0 ' xmlns=' http://Java . sun.com/XML/ns/javaee ' xmlns : xsi=' http://www . w3 . org/2001/Xmlschema-instance ' xsi : schema location=' http://java.sun.com/XML/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-app_3_0.xsd'/web-app,但是还有一个问题,那就是每次创建一个Maven项目时都要修改这个web.xml文件,非常繁琐,所以有一劳永逸的办法。

根据上图,我们可以发现,当我们用IDEA创建一个项目时,我们是通过Maven仓库中的jar包Maven-prototype-web app来创建的,org . Apache . Maven . prototypes就是这个jar包在仓库中的地址。

解压maven-prototype-webapp-1.3 . jar的一个副本,然后可以在prototype-resources \ src \ main \ webapp \ web-INF目录下修改门面的web.xml文件,也可以直接删除,具体取决于你的项目是否需要web.xml的配置文件.

然后复制修改后的web.xml,在maven-prototype-web app-1.3 . jar中删除web.xml文件,粘贴复制的文件。

这样,pom.xml文件也可以被初始化。

摘要

版权声明:解决IDEA中Maven项目中JSTL标签无效的问题是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。