maven 下 EL ${ctx }失效

来源:互联网 发布:婆婆 知乎 编辑:程序博客网 时间:2024/05/29 10:17

开发过程中总是看见

<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


新手上路,欢迎老司机吐槽。

0 0