在jsp中引用${pageContext.request.contextPath}路径失败,或者在js中使用此路径失败,解决的几种方案
一、手动更新web.xml版本
${pageContext.request.contextPath } 无效大多情况下是由于web.xml版本太低导致的,现在普遍都再用web4.0版本,web-app的版本默认是2.3,而要正确解析上面的代码获得当前路径,我们需要把web-app的版本手动改成2.5及以上版本。
复制以下代码,到web.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>
二、取消忽略
在每个JSP中可以指定该JSP是否使用EL。在page directive中的isELIgnored属性用来指定是否忽略。格式为:
jsp页面添加
<%@page isELIgnored= "false" %>
三、手动更新web.xml版本
file/project/factes/web(javaee)
删除前保存一份,删除后点应用
添加高版本
四、js使用效果不明
js仍然无法用${pageContext.request.contextPath}
jsp中写
<input id="PageContext" type="hidden" value="${pageContext.request.contextPath}" />
js中写
url: $("#PageContext").val()+'/login',
五、简单有效
绝对路径直接替换${pageContext.request.contextPath}
url:"http://localhost:8080/javaee_war_exploded/login",