我使用带有 thymeleaf 模板引擎的 spring mvc 框架问题是,我有 1 个页面,其中包含多个复选框迭代唱 thymeleaf th:each iterator。当我单击多个复选框时,我想将复选框值传递给控制器方法..
html内容
<table>
<tr th:each="q : ${questions}">
<h3 th:text="${q.questionPattern.questionPattern}"></h3>
<div>
<p >
<input type="checkbox" class="ads_Checkbox" th:text="${q.questionName}" th:value="${q.id}" name="id"/>
</p>
</div>
</tr>
</table>
Run Code Online (Sandbox Code Playgroud)
*控制器*
@RequestMapping(value = Array("/saveAssessment"), params = Array({ "save" }))
def save(@RequestParam set: String, id:Long): String = {
var userAccount: UserAccount = secService.getLoggedUserAccount
println(userAccount)
var questionSetQuestion:QuestionSetQuestion=new QuestionSetQuestion
var questionSet: QuestionSet = new QuestionSet
questionSet.setUser(userAccount)
questionSet.setSetName(set)
questionSet.setCreatedDate(new java.sql.Date(new java.util.Date().getTime))
questionSetService.addQuestionSet(questionSet)
var list2: List[Question] = questionService.findAllQuestion
var limit=list2.size
var qustn:Question=null
var a = 1;
for( a <- 1 to limit ){
println( a );
qustn= questionService.findQuestionById(a)
questionSetQuestion.setQuestion(qustn)
questionSetQuestion.setQuestionSet(questionSet)
questionSetQuestion.setCreatedDate(new java.sql.Date(new java.util.Date().getTime))
questionSetQuestionService.addQuestionSetQuestion(questionSetQuestion) } "redirect:/teacher/Assessment.html" }
Run Code Online (Sandbox Code Playgroud)
我认为你几乎拥有它。使用复选框,您只能将一条信息与表单一起发回……即值。因此,如果您试图确定在用户单击提交按钮时选中了哪些复选框,那么我会让所有复选框都使用一个名称……例如“id”(与您的名称完全一样)。值是问题的实际 ID(再次像您一样)。提交后,“id”将是一个字符串数组,其中包含所有选中的复选框的值。
所以你的控制器方法需要将名为“ids”的参数映射到参数“id”,它是一个字符串[]。现在对于每个 id,您可以调用 questionService.findQuestionById。
(我不是 Groovy 大师,所以没有代码示例 sry :)
| 归档时间: |
|
| 查看次数: |
14503 次 |
| 最近记录: |