2011-10-19 34 views
1

我知道這個問題可能已在別處解決,但我無法找到令人滿意的解決方案來解決我的問題。順便說一句,我與春天3.0.2Spring 3 MVC錯誤:無論BindingResult還是bean名稱'user'的普通目標對象都可用

的Login.jsp

<form:form id="_LoginForm" name="LoginForm" modelAttribute="user" action="login" method="POST"> 
    <form:input path="username" value=""/> 
    <form:input path="password" value=""/> 
    <input type="submit" value="Submit"/> 

LoginController.java

@RequestMapping(value="login", method=RequestMethod.POST) 
public String login(@ModelAttribute("user") User user, BindingResult result) { 
    System.out.println("recd request"); 
    return null; 
} 

當我嘗試訪問login.jsp頁面的工作,我收到以下錯誤:

java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'user' available as request attribute 
    at org.springframework.web.servlet.support.BindStatus.(BindStatus.java:141) 
    at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getBindStatus(AbstractDataBoundFormElementTag.java:174) 
    at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getPropertyPath(AbstractDataBoundFormElementTag.java:194) 
    at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getName(AbstractDataBoundFormElementTag.java:160) 
    at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.writeDefaultAttributes(AbstractDataBoundFormElementTag.java:123) 
    at org.springframework.web.servlet.tags.form.AbstractHtmlElementTag.writeDefaultAttributes(AbstractHtmlElementTag.java:409) 
    at org.springframework.web.servlet.tags.form.InputTag.writeTagContent(InputTag.java:140) 
    at org.springframework.web.servlet.tags.form.AbstractFormTag.doStartTagInternal(AbstractFormTag.java:102)
+0

http://stackoverflow.com/questions/4335432/modelattribute-in-a -method –

回答

1

您能否在控制器中提供您的RequestMethod.GET方法? 只是想確保您在GET方法中也添加modelAttribute。

+0

建議添加一種將「user」屬性放入模型映射中的設置方法,以及然後重定向到登錄頁面? –

0

我添加了下面的方法來完成這個工作,但是我覺得必須有更好的方法來讓這個工作無需每次都寫一個setup方法。

的applicationContext.xml

<mvc:view-controller path="/" view-name="index" /> 

的index.jsp

<jsp:forward page="index.action"/> 

LoginController.java

@RequestMapping(value="index.action", method=RequestMethod.GET) 
public String setupLogin(Map<String, Object> modelMap) {   
    modelMap.put("user", new User()); 
    return "Login"; 
} 
相關問題