我對spring mvc世界很新。我試圖從HTML表單複選框發送布爾值。當用戶選中複選框時,它將發送true,否則返回false。Spring MVC - 如何在布爾變量中綁定HTML複選框的值
<form class="attendanceBook" role="form" method="post" action="/attendances">
<div class="row">
<div class="form-group">
<div class="col-xs-4">
<label class="control-label">Check Here</label>
</div>
<div class="col-xs-4">
<input type="checkbox" name="i" id="i" value="true" />
</div>
<div class="col-xs-4">
<input type="submit" value="Click"/>
</div>
</div>
</div>
</form>
一些googilng後,我發現this so post,它說standard behaviour is the value is only sent if the checkbox is checked.
所以我有什麼理解是,如果複選框選中,那麼形式將與複選框的值提交,否則將無法提交。當未選中複選框時,數據類中的初始化值將生效。
但在我的情況下,我每次提交表格時都會提交true
。
這裏是我的rest控制器的綁定HTML表單提交。
@RestController
@RequestMapping("attendances")
class AttendanceRestController {
val logger = getLogger(AttendanceRestController::class.java)
@PostMapping
fun patchAttendance(@RequestBody attendanceJson: AttendanceJson): ResponseEntity<*> {
logger.info("attendanceJson {}", attendanceJson)
return responseOK(attendanceJson)
}
}
數據類(我用科特林)
data class AttendanceJson (
var i: Boolean = false,
var t: String = ""
)
那麼,什麼將是從表單提交與複選框綁定布爾數據的方法。我也使用Thymeleaf
。提前致謝。
感謝您的回覆。是的,我可以用JS做到這一點。但是,「標準行爲」呢? – seal
我不認爲這會是一個問題,這段代碼適合我。 –
+1爲您的解決方案。這是很好,乾淨。但讓我們看看是否有人可以回答什麼是原因,以及如何才能通過原始HTML做到這一點。 – seal