【发布时间】:2019-10-15 06:10:39
【问题描述】:
我的表单中有复选框:
<div class="form-check form-check-inline">
<input type="checkbox" th:field="${search.titleIncl}" />
<label class="form-check-label" th:for="${#ids.next('covered')}">Title</label>
</div>
默认情况下,此复选框应处于启用状态,因为搜索对象已将此值指定为 true。这工作正常。我对 thsi 复选框的期望是在选中/未选中时发送真或假。我现在得到的是 True 如果它被选中并且没有被选中则什么都没有。他对我来说有点问题:
在控制器中:
@GetMapping(value = Utils.MAPPING_INDEX)
public ModelAndView index(@RequestParam("titleIncl") Optional<Boolean> titleIncl) {
...calling fillSearch inside of body....
}
private Search fillSearch(Optional<Boolean> titleIncl..) {
Search search = new Search();
//Get seach value if nothing provided give me default.
search.setTitleIncl(titleIncl.orElse(search.isTitleIncl()));
...
return search;
}
因此,如果他取消选中复选框并且我不发送 FALSE 可选,我会遇到问题。
当用户初始进入站点时,他不会发送任何这些参数,因此通过将所有内容设置为 true 来表现良好。 巴德一旦开始搜索并取消选择他不想搜索的部分,他仍然会以默认值结束并搜索所有内容。
如果未选中复选框值,是否有发送 Optional FALSE 的简单方法?
注意:
简单来说,我的意思是没有为此表单搜索创建额外的端点,也没有 Javascript :)
是的,表单在 GET 请求下
【问题讨论】:
-
试试这个
-
@arseniyadru 我会试一试
标签: java spring checkbox thymeleaf