解决IDEA中Maven项目中JSTL标签无效的问题
代码如下(忽略编译错误,不影响结果)
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或者邮箱删除。