jsp不支持${pageContext.request.contextPath} jstl表达式

今天在做程序代码查看的时候,发现开发者都喜欢直接在JSP中用request去获得网站的contextPath, 但web应用已经引入了 jstl  包,为什么不用了。于是自己做了一个页面测试, 写了一个简单的来测试:
程序代码 程序代码

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    <script>
        var contextPath = "${pageContext.request.contextPath}";
        alert(contextPath);
    </script>
</head>
........

从理论上来说,打开页面就应该弹出当前网站的根路径,但事实上没有,原封不动的弹出了"${pageContext.request.contextPath}", 也就是说 jstl el 表达式没有起作用。这是什么元婴呢,后来再仔细查看,原来在web.xml 里采用了 servlet 2.3 的schema. 这在默认情况下不启用el表达式的. 解决方法也很简单, 在jsp页面加入:

程序代码 程序代码

<%@page isELIgnored="false"%>


这样就解决这个问题了,但更好的还是采用servlet 2.5 吧,重新建一个工程,把程序导过来,我觉得更好。

除非申明,文章均为一号门原创,转载请注明本文地址,谢谢!
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: jstl jsp
相关日志:
评论: 1 | 引用: 0 | 查看次数: -
回复回复Jonsvien[2014-08-31 10:45 PM | del]
不容易出,但是应该很容易被忽略。
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.