gpt4 book ai didi

java - 如何在 Spring Boot Controller 类中传递参数(应用程序正在使用 Spring Security)

转载 作者:行者123 更新时间:2023-12-02 12:38:55 24 4
gpt4 key购买 nike

如上,如何传递参数呢?我已成功将 ID 参数从应用程序中的上一页传递到包含表单的页面的 URI。然后我想将此表单的内容与相同的 ID 参数一起发布到我的数据库中。

我在我的应用程序中使用 Spring Security,我怀疑这可能是问题所在,因为如果我不尝试传递 ID 参数(即将我的表单数据对象发送到服务),我的表单的 POST 方法将按预期工作然后成功将数据保存到数据库的类)。然而,一旦我添加了旨在传递 ID 参数的代码,我就会收到 HTTP 405 错误(“请求方法‘POST’不受支持”)。

我的页面的 URI,其中包含 form = http://localhost:8080/acceptOffer?id=(idvalue)

表格:

<form autocomplete="off" action="#" th:action="@{/acceptOffer}"
th:object="${offer}" method="POST" class="form-horizontal"
role="form">

Note
<label th:if="${#fields.hasErrors('note')}" th:errors="*{note}"
class="validation-message"></label>
<input type="text" th:field="*{note}" placeholder="Type Here"
class="form-control" />

<button type="submit">Accept Offer</button>
</form>

Controller 方法:

@RequestMapping(value={"/acceptOffer?id={id}"}, method = RequestMethod.POST)
public ModelAndView acceptOffer(@Valid Offer offer, @PathVariable String id, BindingResult bindingResult){
ModelAndView modelAndView = new ModelAndView();
offerService.setId(Integer.valueOf(id));
offerService.saveOffer(offer);
modelAndView.addObject("successMessage", "Your offer of acceptance has been received");
modelAndView.addObject("user", new User());
modelAndView.setViewName("acceptOffer");
return modelAndView;
}

最佳答案

如果您使用路径变量,请将 Controller 代码更改为

@RequestMapping(value={"/acceptOffer/{id}"}, method = RequestMethod.POST)
public ModelAndView acceptOffer(@Valid Offer offer, @PathVariable String id, BindingResult bindingResult){
ModelAndView modelAndView = new ModelAndView();
offerService.setId(Integer.valueOf(id));
offerService.saveOffer(offer);
modelAndView.addObject("successMessage", "Your offer of acceptance has been received");
modelAndView.addObject("user", new User());
modelAndView.setViewName("acceptOffer");
return modelAndView;
}

并调用它为

http://localhost:8080/acceptOffer/id

关于java - 如何在 Spring Boot Controller 类中传递参数(应用程序正在使用 Spring Security),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45022312/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com