首页 > 解决方案 > 在 Spring Boot 上发布 DTO 对象后的模型属性

问题描述

在我的 Spring Boot 项目中,将 DTO 对象传递给我的视图,然后在提交后发布。例如。表单发布后如何访问“randomKey”?

   @GetMapping("/{userId}/edit/feature/")
   public String showEditFeature(@PathVariable("userId") Long userId, UserDto userDto,
                              Model model)
   {
    User user = userService.get(userId);

    model.addAttribute("user", user);
    model.addAttribute("randomKEy", "AnyObject");

    return "user/edit/profile";
    }

然后是我的帖子功能。

     @PostMapping("profile_update")
     public String watchFeatureUpdate(@Valid UserProfileDto UserProfileDto,
                                 BindingResult result,
                                 RedirectAttributes redirectAttributes, Model model)
     {
     Long userId = userService.updateUserProfile(userProfileDto);

     redirectAttributes.addFlashAttribute("message", "Profile features updated 
     successfully!");
     redirectAttributes.addFlashAttribute("alertClass", "alert-success");
     return "redirect:/user/view/" + userId + "/profile";
     }

标签: javaspringspring-bootdto

解决方案


您需要在 HTML 页面中包含“用户/编辑/配置文件”作为隐藏输入每个对象属性值,以便在提交表单时将它们发回。

 <input type="hidden" name="randomKEy" value="${randomKEy}">

请注意,即使在呈现的网页中不可见,用户仍然可以操作 HTML 内容。


推荐阅读