开发过程中总是看见
<script type="text/javascript" src="${ctx }/js/jquery-1.8.3.js"></script>
这是引入了EL ,导入 EL maven
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
在Jsp页面 添加
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
然后使用
<c:set var="ctx" value="${pageContext.request.contextPath}"/>
运行 结果发现 没有效果 失效了。
解决 :
貌似是maven 生成的web.xml 版本比较低
2.5之前web.xml文件中的头定义中,el表达式默认是忽略不解析的
因此 需要自己做一些操作才可以
3种方案:
方案1,在jsp文件头上添加如下:
<%@ page isELIgnored="false" %>
方案2,在web.xml文件中如下定义:
<jsp-config> <jsp-property-group> <url-pattern>*.jsp</url-pattern> <el-ignored>false</el-ignored> <scripting-invalid>true</scripting-invalid> </jsp-property-group> </jsp-config>
方案3,改变web.xml中的头为2.5之上的版本..
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
成功。
查看文章 :
http://www.myexception.cn/javascript/2031310.html
新手上路,欢迎老司机吐槽。