【问题标题】:Auto-passing parameters to URL from a form in springboot在 Spring Boot 中从表单自动将参数传递给 URL
【发布时间】:2018-04-15 21:41:27
【问题描述】:

我是 Spring 和 Springboot 方面的新手,某些方面对我来说仍然很神奇。是否可以从先前 URL 的表单自动将参数传递给 URL?问题是:

我在localhost:8080/login-page 填写了用户名和密码。例如。 johny123 / pass123.

然后我希望它移动到 URL 地址localhost:8080/user=johny213。 我一直在寻找答案,我认为@RequestParam 无法解决问题。

@PostMapping("/user={userId}")
public ModelAndView loginUser(@RequestParam ("userId") String userID, @ModelAttribute ("user") User user){

creating MAV, code code code, returning MAV
}

问题是,我不想在 URL 中输入参数,我希望它们从表单中自动传递。我没有展示更多代码,因为我只需要一个大致的想法和提示如何实现它。

【问题讨论】:

    标签: java spring spring-boot


    【解决方案1】:

    老实说,我不是 100% 确定您要的是什么。被击中“如何提交表单数据?”还是“如何传递重定向属性?”

    如果是第二个,我认为您要查找的对象称为RedirectAttributes。 您可以将其注入您的控制器方法并设置您的重定向参数。

    例如这样:

    @PostMapping("/login")
    public ModelAndView loginUser(@RequestParam ("userId") String userID, @ModelAttribute ("user") User user, RedirectAttributes attr){
      ...
      attr.addFlashAttribute("user",user);
      attr.addFlashAttribute("userId", userID);
      return modelAndView;
    

    }

    但是您发布的代码看起来像是要确定当前用户。用户存储在会话中,您不需要每次都传递它。有人在this answer on stackoverflow演示了如何获取当前用户。

    【讨论】:

    • 确定当前用户似乎很复杂,因为人们建议在给定的链接中这样做。不知何故,我设法从我的收藏中获取登录用户。我想为每个人提供单独的网页。我稍微改变了我的方法,但是 RedirectAttributes 不起作用。我相信它是我正在寻找的东西,但是有问题。
    • 请不要在 cmets 中发布代码。用您尝试过的方法更新您的问题,并告诉我们结果是什么以及它与您想要实现的目标有何不同
    猜你喜欢
    • 1970-01-01
    • 2020-03-08
    • 1970-01-01
    • 1970-01-01
    • 2018-01-29
    • 2020-03-21
    • 1970-01-01
    • 2011-06-13
    • 1970-01-01
    相关资源
    最近更新 更多