2013-06-03 109 views
0

好的,我完全是Spring MVC的新手。應該有一個明顯的缺失部分,但我無法看到它幾個小時。 JSP說我傳遞的數據是空的。ModelAndView傳遞的對象爲null

這是我的調度員sevlet,沒有在Netbeans中的示例XML太不一樣了,切像名稱空間的部分:

<?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文件的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,要做到這一點,你需要包括Spring標記庫:

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

沒有你必須通過請求對象如訪問模型和視圖對象春EL庫:

request.getAttribute("msg")