gpt4 book ai didi

java - 使用 Spring MVC Controller 处理和验证 HTML 复选框

转载 作者:行者123 更新时间:2023-11-27 22:35:30 25 4
gpt4 key购买 nike

我正在使用 Spring MVC,我想要一个页面来注册我的用户。我想让他们选择接收电子邮件通知,并且我有一些他们必须接受的 ToS,所以有两个复选框。我受限于 HTML 复选框,因为我还使用 thymeleaf 作为我的模板引擎。我想知道您将如何处理和验证复选框的值,无论它们是否被选中。当您使用复选框提交表单时,如果它们被选中,则该值将作为复选框的名称-值对传递给服务器,否则不传递任何内容。您是否有如下不同的处理程序方法:

@RequestMapping(value = "/register, 
method = RequestMethod.POST,
params = {"notify", "agreed_tos"})
public String register(/* other params like username/email */) {
//register user
}

@RequestMapping(value = "/register,
method = RequestMethod.POST)
public String registerMissingToS(/* other params like username/email */) {
// return that agreed_tos checkbox wasn't checked
}

这样,如果复选框被选中,将调用第一个方法,否则将调用第二个方法。有没有办法检查复选框是否被选中,以便我可以在一个 Controller 方法中完成所有这些?你会怎么做?

最佳答案

解决方案 A:有点难看,但速度最快:从 RequestMapping 中删除参数,只需使用 request.getParameter("agreed_tos") 来检查此参数。

解决方案 B:在表单中使用命令对象,这样 thymeleaf 或 spring 标签可以自动添加发送的隐藏输入,以防用户将复选框留空并且 SpringMVC 将此输入绑定(bind)到命令对象字段

解决方案 C:可能使用带有 defaultValue 和 required=false 的 @RequestParam 允许在一种方法中完成这两种情况

关于java - 使用 Spring MVC Controller 处理和验证 HTML 复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14087296/

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