解决idea不识别${pageContext.request.contextPath}的方法

文章目录


一、产生原因

由于web.xml 使用的web-app版本号过低。导致无法识别"{pageContext.request.contextPath}"。

IDEA在创建javaweb项目的时候,web-app的版本默认是2.3,而2.3版本的web-app无法识别上述路径,我们需要2.5及以上的版本。

二、解决方法------直接修改web.xml文件

下面是4.0版本的web.xml 文件模板。

xml 复制代码
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    
</web-app>

但是,如果每次都需要更改那就很麻烦。下面是让每次创建web工程时,web-app 的版本都是4.0版本。只需要找到web.xml的模板,修改替换即可。

三、修改模板------找到web.xml模板,修改替换

(1)在Idea中生成web.xml是以maven插件的方式自动生成。我们根据所选的Archetype可以找到对应插件的位置。

(2)比如: web-app这个插件,在 相对路径org\apache\maven\archetypes\maven-archetype-webapp下就可以找到maven-archetype-webapp.jar这个jar包,idea就是根据这个jar包中的web.xml文件,拷贝生成的。

相对路径 :这里的相对路径是相对于你自己电脑的本地maven仓库(repository)的路径。

如果你没有安装配置过maven的本地仓库,则系通默认在C:\Users\你的电脑用户名\.m2路径下创建一个maven本地仓库,文件名为:repository。

.

根据C:\Users\电脑用户名\.m2\repository\org\apache\maven\archetypes\maven-archetype-webapp\1.0这个路径,可找到maven-archetype-webapp.jar这个jar包。

使用解压软件打开,注意不是解压,是打开。我这里使用的是7zip解压软件。

web工程目录结构:maven-archetype-webapp.jar,这个jar包中的文件结构是什么样子,idea自动生成的web项目结构就是什么样子。

使用记事本打开web.xml。一般无法打开,先将这个文件提取出来,再用记事本打开。这里我提取到桌面上,在桌面上找到该文件,使用记事本打开即可看到模板的内容。

(3)web-app默认2.3版本如下:

(4) 将文件里的内容替换以下即可:

xml 复制代码
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    
</web-app>

最后在把桌面上的文件拷贝回去,重启idea,创建新的web工程即可看到4.0版本的web-app。

(5)如果你已经安装了maven,并配置了maven的本地仓库。找到本地仓库,找到该仓库下的web.xml 文件,将内容替换即可。

打开repository文件夹,根据相对路径org\apache\maven\archetypes\maven-archetype-webapp,找到maven-archetype-webapp.jar这个jar包,找到web.xml文件,替换即可。

步骤同上。

相关推荐
麦兜*41 分钟前
Spring Boot 企业级动态权限全栈深度解决方案,设计思路,代码分析
java·spring boot·后端·spring·spring cloud·性能优化·springcloud
ruan1145142 小时前
MySQL4种隔离级别
java·开发语言·mysql
Hellyc6 小时前
基于模板设计模式开发优惠券推送功能以及对过期优惠卷进行定时清理
java·数据库·设计模式·rocketmq
lifallen6 小时前
Paimon LSM Tree Compaction 策略
java·大数据·数据结构·数据库·算法·lsm-tree
hdsoft_huge6 小时前
SpringBoot 与 JPA 整合全解析:架构优势、应用场景、集成指南与最佳实践
java·spring boot·架构
百锦再7 小时前
详细解析 .NET 依赖注入的三种生命周期模式
java·开发语言·.net·di·注入·模式·依赖
程序员的世界你不懂7 小时前
基于Java+Maven+Testng+Selenium+Log4j+Allure+Jenkins搭建一个WebUI自动化框架(2)对框架加入业务逻辑层
java·selenium·maven
有没有没有重复的名字8 小时前
线程安全的单例模式与读者写者问题
java·开发语言·单例模式
程序员的世界你不懂9 小时前
基于Java+Maven+Testng+Selenium+Log4j+Allure+Jenkins搭建一个WebUI自动化框架(4)集成Allure报表
java·selenium·maven
isNotNullX10 小时前
数据中台架构解析:湖仓一体的实战设计
java·大数据·数据库·架构·spark