2013-04-10 23 views
0

我在春天samples.I工作有一個名爲UserController2控制器類如下有人可以解釋控制器類的工作

@Controller 
public class UserController2 extends MultiActionController { 

    private UserDAO userDAO; 

    public void setUserDAO(UserDAO userDAO) { 
    this.userDAO = userDAO; 
    } 
    @RequestMapping(params = "add", method = RequestMethod.POST) 
    public ModelAndView add(HttpServletRequest request, 
     HttpServletResponse response, User user) throws Exception { 
     userDAO.saveUser(user); 
     return new ModelAndView("redirect:User.htm"); 
    } 

    public ModelAndView list(HttpServletRequest request, 
     HttpServletResponse response) throws Exception { 
     ModelMap modelMap = new ModelMap(); 
     modelMap.addAttribute("userList", userDAO.listUser()); 
     modelMap.addAttribute("User", new User()); 
     return new ModelAndView("userForm", modelMap); 
} 
} 

,我有叫userForm.jsp

<form:form method="POST" action="add.htm" commandName="User" modelAttribute="User"> 
    <table> 
    <tr> 
     <td><form:label path="name">Name</form:label></td> 
     <td><form:input path="name" /></td> 
    </tr> 

    <tr> 
     <td><form:label path="id">id</form:label></td> 
     <td><form:input path="id" /></td> 
    </tr> 


    <tr> 
     <td><form:label path="password">Name</form:label></td> 
     <td><form:input path="password" /></td> 
    </tr> 

    <tr> 
     <td><form:label path="gender">Name</form:label></td> 
     <td><form:input path="gender" /></td> 
    </tr> 

    <tr> 
     <td><form:label path="gender">Name</form:label></td> 
     <td><form:input path="gender" /></td> 
    </tr> 

    <tr> 
     <td><form:label path="country">Name</form:label></td> 
     <td><form:input path="country" /></td> 
    </tr> 

    <tr> 
     <td colspan="2"> 
      <input type="submit" value="Submit"/> 
     </td> 
    </tr> 
    </table> 
</form:form> 
一個jsp頁面

究竟做下面的代碼返回

return new ModelAndView("userForm", modelMap); 

return new ModelAndView("redirect:User.htm"); 

我收到以下錯誤

java.lang.IllegalStateException: Neither BindingResult nor plain target object for 
bean name 'User' available as request attribute 

我搜查,但我找不到的ModelAndView好好解釋..

+1

命令名是'User',添加到modelMap的新用戶名爲'user'。案件事宜。 – 2013-04-10 12:56:55

+0

即使更改後它仍然顯示相同的錯誤 – Ezhil 2013-04-10 13:02:26

+0

您是否還在'modelAttribute =「User」'中修復了大小寫? – 2013-04-10 13:06:12

回答

0

當使用的ModelAttribute使用戶認爲:
1.您的方法參數user註明@ModelAttribute("user")
2.聲明類型爲BindingResult的方法參數。
此外,註釋參數值區分大小寫,並且應該與您在userForm.jsp中聲明的modelAttribute的值完全匹配。

相關問題