类问题:
class question{
private String questionContent;
private String questionId;
private List<String> options;
}
我的json数据:
[{'questionContent': 'content1', 'options': ['a', 'b', 'c', 'd'], 'questionId': '001'},
{'questionContent': 'content2', 'options': ['a', 'b', 'c', 'd']}, 'questionId': '002']
我使用 fastjson 创建一个列表
List<Question> questionList = JSON.parseArray(jsonData, Question.class);
使用 thymeleaf 创建复选框:
<form>
<div th:each="question : ${questionList}">
<div>
<label th:text="${question.questionContent}"></label>
</div>
<div th:each="question2 : ${question.Options}">
<input class="options" th:name="${question.questionId}"
type="checkbox" th:value="${question2}">
</div>
</div>
</form>
spring boot如何获取checkbox的值? Controller 如何实现? 或者ajax发布数据?
最佳答案
您可以使用 Jquery 将数据以 json 形式手动提交到后端的 REST POST 端点。 你可以按照你喜欢的任何方法进行操作。在这种情况下,我所做的是在提交表单时触发 jquery 表单提交,并使用 ajax 向其余 Controller 发出 POST 请求。这里,我假设一组特定的复选框只会选中一个复选框。否则您必须对其进行修改。
使用 Jquery :
$(document).ready(function() {
$( "form" ).submit(function() {
event.preventDefault();
var questions;
questions = {};
$.each($("input[type='checkbox']:checked"),function(){
var questionName,questionValue;
questionValue = $(this).val();
questionName = $(this).attr('name')
questions[questionName] = questionValue;
});
$.ajax({
type : 'POST',
contentType : "application/json;charset=utf-8",
url : '/endpoint/questions/save',
data : JSON.stringify(questions),
dataType : 'json',
success : function(data) {
}
});
});
});
还有一个休息端点,例如:
@RestController
@RequestMapping("/endpoint/questions")
public class QuestionsController {
@Autowired
private QuestionsService service;
@PostMapping
@RequestMappint("/save")
@ResponseStatus(HttpStatus.CREATED)
public Long create(@RequestBody Questions resource) {
Preconditions.checkNotNull(resource);
return service.create(resource);
}
}
关于javascript - Spring Boot获取复选框值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56729747/