Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > jsp не отображвет значение переменной


Автор: savage_fx 27.3.2008, 21:01
Такая ситуация:

Кто работал со Spring MVC под web , поймет сразу

После того как на контроллер пошел запрос, он должен возвратить объект ModelAndView для jsp странице. Объекту ModelAndView можно передать переменные , которые будут доступны этой jsp странице. Но вместо значения переменной , jsp отображает название переменой- "${message}" , а должно быть "Hello world!" .В чем дело?

Код jsp - страницы
---------------------------------------------------------------
Код


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

<html>
<head><title>Spring Training, Inc.</title></head>
<body>
<h2> ${message}</h2>
</body>
</html>



Файл web xml
-------------------------------------------

Код


<context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>
            /contex/ac-applicationContext.xml
        </param-value>
    </context-param>

    <listener>


        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

    <servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>*.htm</url-pattern>
    </servlet-mapping>
</web-app>



ac-applicationContext.xml
-----------------------------------------------------------------------------------------
Код

<bean id="testController"
          class="com.alexeir.pm.view.MTestController">
        <property name="viewName" value="ttt"/>
    </bean>

    <bean id="viewResolver"
          class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass">
                    <value>org.springframework.web.servlet.view.JstlView</value>
        </property>

        <property name="prefix" value=""/>
        <property name="suffix" value=".jsp"/>
    </bean>

    <bean id="urlMapping"
          class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
        <property name="mappings">
            <props>
        <prop key="ttt.htm">testController</prop>
        </props>
        </property>
    </bean>


Контроллер
Код


public class MTestController extends AbstractController {
    private String viewName;

    protected ModelAndView handleRequestInternal(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
        return new ModelAndView(viewName, "message", "1111111");//To change body of implemented methods use File | Settings | File Templates.
    }

    public String getViewName() {
        return viewName;
    }

    public void setViewName(String viewName) {
        this.viewName = viewName;
    }
}

Автор: Kangaroo 28.3.2008, 03:26
Со спрингом вроде все нормально.
Попробуй вывести дедовским способом  - <c:out value="${message}"/>

Автор: AlexeyVorotnikov 28.3.2008, 11:05
Kangaroo правильно сказал.
Так:
Код

<h2> ${message}</h2>

оно и не должно выводиться.

Автор: savage_fx 2.4.2008, 11:10
Пробовал <c:out value="${message}"/> , не работает.

Если получать через request.getParameter() то все ОК, тут походу проблема с JSTL или еще чем-то

Автор: Kangaroo 2.4.2008, 11:29
http://forum.vingrad.ru/forum/topic-193848/hl/tomcat++web.xml/index.html
http://forum.vingrad.ru/forum/topic-196038/hl/tomcat++web.xml/index.html

Почитайте, может у вас тоже самое.

Автор: dobrynya 2.4.2008, 16:38
savage_fx, проверь заголовок web.xml. Там должна быть указана версия 2.4

<web-app version="2.4" 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&quot;&gt;

иначе, если к примеру 2.3, то EL выражения не работают. У меня презамечательно работало выражение вида ${message}

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)