我有一個Spring MVC Thymeleaf專案,其中一個頁面/控制器顯示了一些資訊。
用戶可以在該頁面上進行的唯一互動是選中或取消選中復選框。
如果用戶這樣做,則必須在控制器中執行某些邏輯。
如果復選框被更改(選中/未選中),我的目標是訪問控制器的端點。
如何將復選框系結到控制器的端點,檢索復選框的值并根據值(選中/未選中)執行一些邏輯?
對于表單,我知道它是一個@PostMapping,但是對于表單,我通常有一個按鈕,用戶必須單擊該按鈕才能將表單傳輸到指定的端點。
但是如何處理復選框等元素上的事件?
@Controller
@Scope("session")
public class MyController {
@GetMapping("/")
public String show(Model model) {
// Some logic to prepare the information
boolean isChecked = ... depending on logic ...;
model.addAttribute("isChecked", isChecked);
...
// Show information on page index.html
return "index";
}
@... what kind of mapping?
public String checkboxAltered(...whatever needed..., Model model) {
// Checked or unchecked
if (...checkbox checked...) {
// Checked, delete some data
} else {
// Unchecked, create some data
}
}
// Redirect to show information again
return "redirect:/";
}
以及如何在頁面 ( index.html) 中的復選框上完成 Thymeleaf以便這可能起作用?現在只有復選框,并且根據模型中的屬性(布林值)選中/取消選中:
<input type="checkbox" th:checked="${isChecked}"/>
現在我必須將描述的用戶事件處理添加到復選框中。
但是,我不確定這是否可以按照我的目標來完成。如果不可能,其他的怎么辦?
https://www.thymeleaf.org/doc/tutorials/3.0/thymeleafspring.html#checkbox-fields 上的 Thymeleaf 檔案顯示了表單背景關系中的復選框。
但這意味著我必須提供一個用戶必須檢查的復選框以及一個用戶必須另外單擊的按鈕。我想避免讓用戶點擊兩次。
uj5u.com熱心網友回復:
將其包裹在某種形式中:
<form th:action="@{/trigger-checkbox}" method="get">
<input type="checkbox" name="myCheckbox" th:checked="${isChecked}"/>
<button type="submit">Submit</button>
</form>
像處理引數“myCheckbox”一樣處理它:
@GetMapping("/trigger-checkbox")
public String checkboxAltered(@RequestParam("myCheckbox") boolean checkbox) {
// Do whatever you want with the checkbox value
}
如果您不更改任何資源,請隨意使用 GET HTTP 方法。
uj5u.com熱心網友回復:
如果您不想有提交按鈕但想將復選框選擇提交到后端,則可以在復選框上設定一個事件偵聽器。在事件觸發時,您可以提交表單。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/369942.html
