gpt4 book ai didi

java - Thymeleaf - 不同数量的参数

转载 作者:行者123 更新时间:2023-12-02 03:06:44 24 4
gpt4 key购买 nike

我有这个表格:

<form th:action="@{'/articles/' + ${article.id} + '/processTest'}" method="post">
<table>
<tr th:each="entry,iter: ${wordsWithTranslation}">
<td><input type="text" th:value="${entry.key.value}" th:name="'q' + ${iter.index}" readonly="readonly"/>
</td>
<td> -----</td>
<td><input type="text" th:name="'a' + ${iter.index}"/></td>
</tr>
</table>
<br/>
<input type="submit" value="Sprawdź"/>
</form>

wordsWithTranslation是一个HashMap,可以包含不同数量的元素。

Controller :

public String processTest(Model model, @PathVariable Long id, 
@ModelAttribute(value = "q0") String q0,
@ModelAttribute(value = "a0") String a0,
@ModelAttribute(value = "q1") String q1,
@ModelAttribute(value = "a1") String a1)

如何修复该方法参数,使其不执行类似的操作(每个 q 和一个值的 ModelAttribute)?有什么办法可以在这里做类似循环的事情或者最好的解决方案是什么?

最佳答案

将输入名称设置为数组参数名称:

<form th:action="@{'/articles/' + ${article.id} + '/processTest'}" method="post">
<table>
<tr th:each="entry : ${wordsWithTranslation}">
<td>
<input type="text" th:value="${entry.key.value}" name="q[]" readonly="readonly"/>
</td>
<td> -----</td>
<td><input type="text" name="a[]"/></td>
</tr>
</table>
<input type="submit" value="Sprawdź"/>
</form>

现在在 Controller 中您可以接受此字段为 List<>array :

@RequestMapping(value='/articles/{id}/processTest')
public String someMethod(Model model, @PathVariable Long id,
@RequestParam(value = "q[]") List<String> qList,
@RequestParam(value = "a[]") List<String> aList){
...
}

列表中的每一项q将对应于列表 a 的某些项目.

关于java - Thymeleaf - 不同数量的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41614986/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com