Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 是否可以在Spring中提交包含已有实体的表单?如果是,如何进行?_Java_Spring_Form Submit - Fatal编程技术网

Java 是否可以在Spring中提交包含已有实体的表单?如果是,如何进行?

Java 是否可以在Spring中提交包含已有实体的表单?如果是,如何进行?,java,spring,form-submit,Java,Spring,Form Submit,以下是jsp: 以下是控制器的相关部分: @请求映射/toAddFriend 公共模型和视图到AddNewFriend{ 映射模型=新的HashMap; model.putUSERS、userService.getUsers; ModelAndView ret=新模型和视图添加朋友,模型; ret.addObjectuser,新用户; 返回ret; } 如果我执行上面的代码,那么在提交表单时将创建一个全新的用户对象。但是,当我单击submit时,我想获得一个已经存在的用户实例,它清楚地显示在这里

以下是jsp:

以下是控制器的相关部分:

@请求映射/toAddFriend 公共模型和视图到AddNewFriend{ 映射模型=新的HashMap; model.putUSERS、userService.getUsers; ModelAndView ret=新模型和视图添加朋友,模型; ret.addObjectuser,新用户; 返回ret; } 如果我执行上面的代码,那么在提交表单时将创建一个全新的用户对象。但是,当我单击submit时,我想获得一个已经存在的用户实例,它清楚地显示在这里:

如何修改代码以获取现有对象? 实际上,我知道一种获取现有实例的丑陋方法。通过提交表单,我可以创建一个新的用户实例,其用户名与我正在寻找的用户名相同。然后在DaoImpl类中,我可以查询与新创建的用户共享用户名的旧用户。但我想这是相当浪费和丑陋的,所以我不相信没有更好的办法

更新


能否添加映射到requestForFriends.html代码的控制器?在您当前的代码中,有什么不起作用?@Xaerxess:我使用空值获取新实例,而不是使用现有值获取现有实例。至于你评论的第一部分,我不知道怎么做,因为我是个初学者……我是说Java?负责操作的代码=requestForFriends.html处理。如果您使用命令(如示例中所示),则可能是表示表单的带注释的参数,并填充了所有选定的选项。似乎如果您希望获得现有用户,则需要传入某种ID,然后执行查找。我正在查看您的代码,您似乎每次都在创建一个新代码。也许我错过了什么?你能澄清一下吗?@Xaerxess请找到负责action=requestForFriends.html的java代码遗憾的是,我在那里找到的用户是一个全新的用户,碰巧与旧用户同名,但其电子邮件是空的。我不需要新用户,我想要现有的老用户,但我不知道如何发送它。
   <!-- language: lang-java -->

 @RequestMapping(value = "/requestForFriends", method = RequestMethod.POST)
        public ModelAndView requestNewFriend(@ModelAttribute("user") User user, BindingResult result) {
            System.out.println(user.getUserName());
                System.out.println(user.getEmail());
                Map<String, Object> model = new HashMap<String, Object>();
                model.put("USERS", userService.getUsers());
                ModelAndView ret=new ModelAndView("addFriend", model);
                ret.addObject("user", new User());

                return ret;

            }
  @ModelAttribute
    public void fillUsers(Model model) {
        model.addAttribute("USERS", userService.getUsers());
    }

    @ModelAttribute
    public void getUser(@RequestParam(required = false) String userName, Model model) {
        User user = null;
        if (userName != null) {
            user = userService.getUserByName(userName);
        }
        if (user == null) {
            user = new User();
        }
        model.addAttribute("user", user);
    }

    @RequestMapping("/toAddFriend")
    public String toAddNewFriend() {
        return "addFriend";

    }

    @RequestMapping(value = "/requestForFriends", method = RequestMethod.POST)
    public String requestNewFriend(@ModelAttribute("user") User user) {
        System.out.println(user.getUserName());
        System.out.println(user.getEmail());
        return "addFriend";

    }