You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Thymeleaf+Spring Boot项目从网页获取布尔值的实现方案咨询

实现方案

方案1:表单直接传递布尔值(推荐,无需额外转换)

前端HTML代码修改

直接将option的value设置为布尔字符串,select的name和实体类属性名保持一致:

<div class="col-2">
    <select id="heroOrVillian" name="hero" class="form-control">
        <option value="true">Hero</option>
        <option value="false">Villian</option>
    </select>
</div>

如果使用Thymeleaf做字段绑定,注意模型属性名首字母小写(符合JavaBean规范),正确写法如下:

<div class="col-2">
    <select id="heroOrVillian" th:field="${superHuman.hero}" class="form-control">
        <option th:value="true">Hero</option>
        <option th:value="false">Villian</option>
    </select>
</div>

注:之前Thymeleaf绑定报错大概率是因为你写的${SuperHuman.hero}首字母大写,和后端模型存入的属性名不一致,缺少对应getter/setter也会导致报错。

后端控制器代码修改

替换注释位置的代码:

// Request for boolean retrieval code here
boolean isHero = Boolean.parseBoolean(request.getParameter("hero"));

替换setHero的注释代码:

superHuman.setHero(isHero);

方案2:保留原有1/2的option值,后端做映射转换

如果你不想修改前端option的value配置,也可以在后端手动做值映射:

前端代码无需修改,保留原有value="1"、value="2"的配置

后端控制器代码修改

替换注释位置的代码:

// Request for boolean retrieval code here
String affiliation = request.getParameter("heroOrVillian");
boolean isHero = "1".equals(affiliation);

替换setHero的注释代码:

superHuman.setHero(isHero);

两种方案都可以实现需求,布尔类型数据在HTTP请求中本质是通过字符串传递的,Spring或JDK自带的布尔转换工具会自动将"true"字符串转为布尔true,其余字符串转为false。

内容的提问来源于stack exchange,提问作者Devon Dixon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 04:18:01