ModelAttributes не доступны на JSP - PullRequest
       12

ModelAttributes не доступны на JSP

1 голос
/ 24 февраля 2010

Создан новый проект Spring MVC с использованием MAven и у меня возникла проблема, когда атрибуты 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

Я предполагаю, что мне не хватает jar, у меня есть следующее в списке зависимостей 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>

Ответы [ 2 ]

4 голосов
/ 24 февраля 2010

Я цитирую ответ , который я предоставил ранее для проблемы EL не работает:

Другими словами, выражение EL не оценивается? Это может иметь одну или несколько из следующих причин:

  1. Сервер приложений, о котором идет речь, не поддерживает JSP 2.0.
  2. web.xml не объявлен как Servlet 2.4 или выше.
  3. @page настроен на isELIgnored=true.
  4. Файл web.xml настроен на <el-ignored>true</el-ignored> в <jsp-config>.

В вашем конкретном случае 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>
3 голосов
/ 24 февраля 2010

Я полагаю, ваш контейнер сервлетов использует JSP pre-2.0, где EL по умолчанию игнорируется. Проверьте, что было в комплекте с ним.

В любом случае, вы должны указать следующее:

<%@ page isELIgnored="false" %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...