Spring + jQuery + FTL:如何处理 "on" 或 null 的复选框值



当我序列化表单并使用一些代码将序列化的查询字符串转换为 JSON 对象时,我插入的复选框:

<@spring.formCheckbox path="signUpDto.checkbox_terms" />
分别具有"on"和null的"选中">

和"未选中"值。我用谷歌搜索了这种行为,我发现这是jQuery表单序列化的标准行为。

在我的 DTO 中,我的checkbox_terms变量是这样声明的:

private boolean checkbox_terms;

但是,当我尝试将序列化的对象表单数据发布回服务器时,它会返回 400 错误(错误请求(。这可能是因为checkbox_terms上的数据类型错误,因为两个值分别为"on"和null。

所以我的问题是,我应该如何处理这种情况?

为什么你认为问题来自复选框? 由于 415 错误意味着服务器不处理 POST 请求的内容类型,在这种情况下是应用程序/json。

我猜你使用Spring MVC。所以你可以尝试在RequestMapping中设置消耗="application/json"。

参考文献: https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/bind/annotation/RequestMapping.html#consumes--

只需将boolean更改为字符串,如下所示:

private String checkbox_terms;

当您需要检查它是否被选中时,请执行

[dto].getCheckbox_terms().equalsIgnoreCase("on")

对于已选中或

![dto].getCheckbox_terms().equalsIgnoreCase("on")

为未选中。

相关内容

最新更新