2013-06-03 4 views
0

Хорошо, я полностью новичок в Spring MVC. Должна быть очевидная недостающая часть, но я не могу ее видеть часами. JSP говорит, что мои прошедшие данные равны нулю.Обратный объект ModelAndView равен

Это мой диспетчеру sevlet, ничего слишком отличается в образце XML в Netbeans, вырезать некоторые части, как пространство имен:

<?xml version="1.0" encoding="UTF-8"?> 
<beans> 
    <bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"/> 
    <bean id="handlerMapping" class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/> 
    <bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> 
    <property name="mappings"> 
    <props> 
    <prop key="index.htm">indexController</prop> 
    <!--<prop key="hello.htm">helloController</prop> --> 
    </props> 
</property> 
</bean> 

<bean name="/hello.oi" class="controllers.HelloController"/> 

<bean id="viewResolver" 
    class="org.springframework.web.servlet.view.InternalResourceViewResolver" 
    p:prefix="/WEB-INF/jsp/" 
    p:suffix=".jsp" /> 

<!-- 
The index controller. 
--> 
<bean name="indexController" 
    class="org.springframework.web.servlet.mvc.ParameterizableViewController" 
    p:viewName="index" /> 
</beans> 

Это мой контроллер HelloController:

@Controller 
public class HelloController { 
    @RequestMapping 
    public ModelAndView hello() { 
    String str = "this is my message"; 
    System.out.println(str); 
    ModelAndView mav=new ModelAndView(); 
    mav.setView("hello"); 
    mav.addObject("msg", str); 
    return mav;  
    } 
} 

И это JSP file hello.jsp:

<!DOCTYPE html> 
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %> 
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %> 
<html> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
    <title>JSP Page</title> 
</head> 
<body> 
    <h1>${msg eq null}...</h1> 
    <br /> 
    <h1>${msg}...</h1> 
</body> 
</html> 

Метод контроллера печатает сообщение на консоль, но JSP не делает «истинный ...» и хорошо, ничего вместо моего сообщения ..

+0

Ваш контроллер код не может скомпилировать. В ModelAndView нет .setView (String), только .setView (View) и .setViewName (String). Проверьте свой код и вернитесь с правильными источниками. –

ответ

0

Использование ${msg} означает, что вы используете Spring EL, для этого вам необходимо включить библиотеку весной теги:

<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> 

Без Spring EL библиотеки вы должны получить доступ к модели и просмотра объекта через запрос объекта, например:

request.getAttribute("msg") 
Смежные вопросы