首页 > 解决方案 > Java spring - “所需的int参数不存在”

问题描述

我是春天的新人。我正在尝试创建 editUser.jsp 以在 mysql 数据库中编辑用户。出于这个原因,我创建了将数据从 userList.jsp 表单传递到 editUser.jsp 的控制器和方法。这是代码:

@RequestMapping(value = "/editUser", method = RequestMethod.POST)
private String editUser(@RequestParam int id, Model model) {
    Users user = (Users) session.load(Users.class, id);
    ModelAndView mv = new ModelAndView("user");
    model.addAttribute("user", user);
    if(user.getId()!=null){
        Transaction transaction = session.beginTransaction();
        session.update(user);
        transaction.commit();
    }
    return "editUser";
}

并且数据很好地传递到了 editUser 页面。现在,当我尝试编辑和提交数据时,我收到错误消息: 必需的 int 参数“id”不存在

<form:form action="editUser.htm" method="GET" commandName="editUser">
    <div>Account Information</div>
    <div>
        <form:label path="uname">User name:</form:label><br/>
        <form:input id="uname" type="text" path="uname"></form:input><br/>
        <form:label path="pass">Password:</form:label><br/>
        <form:input id="pass" type="text" path="pass"></form:input><br/>
        </div>

        <br/><br/>

        <div>Contact Information</div>
        <div>
        <form:label path="gender">Choose gender:</form:label><br/>
        <form:select id="gender" type="text" path="gender">
            <form:option value="Female">Female</form:option>
            <form:option selected="selected" value="Male">Male</form:option>
        </form:select><br/>
        <form:label path="age">Age:</form:label><br/>
        <form:input id="age" type="text" path="age"></form:input><br/>
        <form:label path="age">Address:</form:label><br/>
        <form:input id="address" type="text" path="address"></form:input><br/>
        </div>
        <input type="submit" value="Edit User"/>
</form:form>enter code here

我是否需要在控制器中创建另一个方法来处理数据库中的更新数据,或者更新处理可以在现有方法中完成(目前,我完全困惑 jsp 页面如何“知道”来自控制器的哪个方法会被调用)?数据库列 ID 已设置 - 自动递增。

提前致谢。

标签: javaspringmodel-view-controllercontroller

解决方案


@RequestParam(value="id",required="false") int id


推荐阅读