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

 更新时间:2018年09月18日 10:43:03   作者:narutom_cxc  
这篇文章主要介绍了关于IDEA中Maven项目中JSTL标签无效问题的解决方法,需要的朋友可以参考下

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

最近刚换IDEA用上Maven,之前一直都是用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 isELIgnored=“false” %>这个命令就jstl就生效了。

但每个jsp页面都要添加这个命令是一件很繁琐的事情,所以把web.xml的头信息更换为更高的版本。

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

相关对应版本可以自己去搜一下,这里不做详细阐述。提供几个web.xml的头信息。

2.4

<?xml version="1.0" encoding="UTF-8"?> 
<web-app id="WebApp_9" version="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:schemaLocation="http://java.sun.com/xml/ns/j2ee	
 http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> 	 xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
 http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> 
</web-app>

2.5

<?xml version="1.0" encoding="UTF-8"?> 
<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_2_5.xsd" version="2.5"> 
</web-app>

3.0

<?xml version="1.0" encoding="UTF-8"?> 
<web-app version="3.0" 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">
</web-app>

但还会有个问题,那就是每次创建Maven项目都要去修改这个web.xml文件也很繁琐,所以还有个一劳永逸的方法。


通过上图我们可以发现我们用IDEA创建项目的时候,是通过Maven仓库中的maven-archetype-webapp这个jar包创建的,而org.apache.maven.archetypes是这个jar包在仓库中的地址。

把maven-archetype-webapp-1.3.jar解压一个副本出来,然后可以在archetype-resources\src\main\webapp\WEB-INF目录下修改立面的web.xml文件,或者直接删掉也可以,这取决于你的项目是否用得上web.xml这个配置文件。

然后把修改好的web.xml复制,把maven-archetype-webapp-1.3.jar中的web.xml文件删除,再把复制好的文件粘贴进去。

这种方式同样也可以对pom.xml文件进行初始化的配置。

总结

相关文章

  • Java 后端开发中Tomcat服务器运行不了的五种解决方案

    Java 后端开发中Tomcat服务器运行不了的五种解决方案

    tomcat是在使用Java编程语言开发服务端技术使用最广泛的服务器之一,但经常在开发项目的时候会出现运行不了的情况,这里总结出几种能解决的办法
    2021-10-10
  • 解决Spring Batch框架job任务只跑一次的问题

    解决Spring Batch框架job任务只跑一次的问题

    这篇文章主要介绍了解决Spring Batch框架job任务只跑一次的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • Spring Security的过滤器链机制

    Spring Security的过滤器链机制

    过滤器作为 ​Spring Security​ 的重中之重,我们需要了解其中的机制,这样我们才能根据业务需求的变化进行定制,今天来探讨一下 ​Spring Security​ 中的过滤器链机制
    2022-08-08
  • spring常用注解开发一个RESTful接口示例

    spring常用注解开发一个RESTful接口示例

    这篇文章主要为大家介绍了使用spring常用注解开发一个RESTful接口示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2022-03-03
  • springcloud本地配置优先方式

    springcloud本地配置优先方式

    这篇文章主要介绍了springcloud本地配置优先方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-07-07
  • Java8的default方法详细介绍

    Java8的default方法详细介绍

    这篇文章主要介绍了Java8的default方法,详细介绍了什么是default方法,在多继承时的处理等,需要的朋友可以参考下
    2014-04-04
  • IntelliJ IDEA Run时报“无效的源发行版:16“错误问题及解决方法

    IntelliJ IDEA Run时报“无效的源发行版:16“错误问题及解决方法

    这篇文章主要介绍了IntelliJ IDEA Run时报“无效的源发行版:16“错误问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-05-05
  • SpringBoot自动装配之@Enable深入讲解

    SpringBoot自动装配之@Enable深入讲解

    这篇文章主要介绍了SpringBoot自动装配之@Enable,SpringBoot中提供了很多Enable开头的注解,这些注解都是用于动态启用某些功能的。而其底层原理是使用@Import注 解导入一些配置类,实现Bean的动态加载
    2023-01-01
  • MyBatis使用注解开发实现过程详解

    MyBatis使用注解开发实现过程详解

    这篇文章主要介绍了MyBatis使用注解开发实现过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • 基于jdk1.8的Java源码详解 Integer

    基于jdk1.8的Java源码详解 Integer

    这篇文章主要介绍了基于jdk1.8的Java源码详解 Integer,Integer是int的Warpper类,是面向对象的即OOP的对象类型,,需要的朋友可以参考下
    2019-06-06

最新评论