2010-02-24 43 views
1

使用MAven和Im創建了一個新的Spring MVC項目,其中modelAttributes在jsp頁面上沒有被替換。對於例如,ModelAttributes無法在jsp上訪問

<%@ page session="false"%> 
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> 
<%@ page contentType="text/html" %> 

Hello Worlds ${location} is ${weathers} 
<c:out value="${location}"/> 

顯示

Hello Worlds ${location} is ${weathers} 
${location} 

代替

Hello Worlds Omaha is Cold 
Omaha 

我猜我失去了一個罐子,我已經中MVN依賴列表如下:

<dependency> 
     <groupId>taglibs</groupId> 
     <artifactId>standard</artifactId> 
     <version>1.1.2</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.geronimo.specs</groupId> 
     <artifactId>geronimo-servlet_2.4_spec</artifactId> 
     <version>1.1.1</version> 
    </dependency> 
    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>servlet-api</artifactId> 
     <version>2.4</version> 
     <scope>provided</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring</artifactId> 
     <version>2.0.7</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-webmvc</artifactId> 
     <version>2.5.5</version> 
    </dependency> 

回答

3

我想你的servlet容器使用的是JSP 2.0以前的版本,其中EL在默認情況下被忽略。檢查一下已經捆綁了什麼。

無論如何,你必須指定以下內容:

<%@ page isELIgnored="false" %> 
4

我從answer我之前EL不靈問題提供報價:

隨着換句話說,EL表達式沒有得到評估?這可能具有以下一個或多個原因:

  1. 有問題的應用程序服務器不支持JSP 2.0。
  2. web.xml未聲明爲Servlet 2.4或更高版本。
  3. @page配置爲isELIgnored=true
  4. web.xml在<jsp-config>中配置爲<el-ignored>true</el-ignored>

在您的具體情況下,1)可能被劃傷。 3)和4)太明顯,無法監督,所以很可能會被刮傷。留下點2)。您的web.xml顯然是用舊版本聲明的。確保您的web.xml宣佈爲至少 Servlet 2.4:

<web-app 
    xmlns="http://java.sun.com/xml/ns/j2ee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" 
    version="2.4"> 

    <!-- Here you go. --> 

</web-app>