这个问题已经有一个答案在这里:

我有一个JSP页上运行Tomcat5.5.我有下列代码:

 <c:forEach var="i" begin="1" end="10" step="1">
  <c:out value="${i}" />
  <br />
</c:forEach>

输出我收到的是:

${i} 
${i} 
${i} 
${i} 
${i} 
${i} 
${i} 
${i} 
${i} 
${i} 

我不能工作了,为什么forEach循环的工作,但出不工作。任何帮助任何一个可能给将是巨大的。

有帮助吗?

解决方案

我知道这是应该在通过默认,但是我跑过网页和(或甚至同一页,改变行为),那里的EL处理不会发生。添加以下的任何这种网页应该解决的问题:

<%@ page isELIgnored="false" %> 

我将它添加到每一页,因为它不会伤害,并且我仍然不知道的根本原因,有时会导致一页的停止解释EL表达方式。

其他提示

我只是有这个相同的问题和花了永远,试图找出是什么是错误的。

我已经开发了许多网络的应用程序,从头开始。为什么突然这是一个不合作?

一个差别是,这一次我使用的专家网络应用程序原型,以生成项目的结构。它创造了一个web.xml 文件看起来是这样的:

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
  <display-name>Archetype Created Web Application</display-name>
</web-app>

一旦我意识到,作为我的问题,我确信我有答案。所以我复制了一个我的2.5web.xml 标头、重建和重新部署。没有雪茄。简直不敢相信这不是问题。清理项目,重新启动tomcat。不。

RHSeeger的答案,导致我在尝试把 <%@页isELIgnored="虚假"%>.这解决了该问题。但我仍然想知道为什么el开始得到忽略的开始。

我想el被忽略的东西,因为错了我web.xml所以我密切地检查了它在与比较的另一个网络应用程序是web.xml 我知道。没有明显的差异。

然后我删除了 <%@页isELIgnored="虚假"%>从我JSP,并重新部署,假设el不会再次评估,但是出乎我的意料中,el进行评价好!

然后,计算必须以某种形式的缓存问题,我解开我的变化web.xml 重建问题。我重新部署,但仍然el正在评估是否正确,即使坏web.xml.然后我清洗我的整个项目(我的使用分解的部署),吹走的解目录和重建。然后,我重新启动tomcat。然而,埃似乎是获得正确评估,尽管不好web.xml.

终于恍然大悟我。我简单地添加一个空间,一些地方在JSP,重新包装,并刷新的网页。宾果!现在el没有得到评估。

所以问题 与web.xml.它将进一步复杂的事实,Jsp没有得到重新编译,除非他们已经改变。不知道,如果tomcat使用MD5求和决定如果Jsp需要重新编译或是什么。另一种可能性是,我使用的瓷砖,这我知道有一个缓存机制,但我不会期望,为了生存的一个tomcat重新启动。

无论如何,除非修改Jsp后固定的web.xml所有的赌注都是关于是否EL将再次开始工作。希望这样可以节省别人头痛的问题。我也感兴趣,如果任何人都可以告诉我是否是tomcat不重新编译Jsp或砖缓存的输出JSP。我敢肯定这是重新编译,因为在编制时间是当JSP应该怎么处与${}el表情,对吗?瓷砖不能实际上高速缓存什么被取代的到el表达,否则,所有种类的问题会出现。

这是头web.xml 这引起的问题

下面的行家产生的头停止EL被eval'ed.

<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>

使用以下标题eval的EL。

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

确保包括相关名字空间的web.xml.只是试图取代

<web-app>

喜欢的东西

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
                      http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
  version="3.0"
  metadata-complete="true">

它修好它对我来说。你可以找到正确的名字空间的用于Tomcat实例中的例子应用程序来Tomcat安装。

对于那些有兴趣,相当于XML语法JSP2.0:

<jsp:directive.page isELIgnored="false"/>

也有类似的问题,凯文,我用家开始使用网络应用程序,但是没有喜悦与评估表达jsp-我已经删除DOCTYPE头-都是良好的现在不玩isELIgnored位专家生成web.xml 其链接到2.3其作为彼得说有萨默认

看到我的答案 Javascript串。替换(/\$/,str)工作的古怪在jsp文件 可能的原因。

再回答:${我}是表达所谓的'表达的语言'.有时,表达的语言可以被禁止。参见上述答复的潜在原因,以及如何使它。

使用tomcat6.它不需要任何的配置用于在EL web.xml.

从控制器:

@RequestMapping(value = "createcustomer",method = RequestMethod.GET)
    public String customer(Model model)
    {
        Customer cus=new Customer();
        cus.setCustomerNumber("Test");
        model.addAttribute("customer",cus);
        return "createcustomer";
    }

在查看:

<%@taglib uri="http://www.springframework.org/tags/form" prefix="form" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %> 

<div class="cl">    
   <form:form commandName="customer" method="POST">

      <p>Name: <c:out value="${customer.CustomerNumber}"></c:out></p>

   </form:form>
<div>

输出:

Name: Test
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top