0

私は春のサンプルに取り組んでいます.次のように 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という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>

以下のコードは実際に何を返しますか

  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 の適切な説明が見つかりません。

4

1 に答える 1

0

modelAttribute を使用する場合、ユーザーは次のようになります
。 1. メソッド パラメーターuserに注釈が付けられます@ModelAttribute("user")
。 2. 型のメソッド パラメーターBindingResultが宣言されます。
また、注釈パラメーター値は大文字と小文字が区別され、userForm.jsp で宣言した modelAttribute の値と正確に一致する必要があります

于 2013-04-11T03:15:20.657 に答える