Thymeleaf - 输入动态字符串列表
Thymeleaf - Input Dynamic List Of String
我想添加用户输入字段的动态列表。组合这些不同的输入并将它们作为列表从视图传递到控制器。
这是我的域名 class
public class HTMLPage {
@Size(min = 3)
@NotNull
private List<String> ingredients;
@Size(min = 5)
@NotNull
private List<String> method;
@Size(min = 3)
@NotNull
private String recipeName;
//getter setters
}
我对百里香完全陌生。我已经完成了所有可能的教程。有多种方法可以迭代列表,但我找不到 动态输入字符串列表 并将完整的 HTMLPage 对象发送到我的控制器的方法。
您需要做的第一件事是为您的页面创建一个控制器。从那里你加载到 spring 信息,在你的例子中是列表,在我的例子中我使用了一个包含很多不同东西的 ModelMap。
@RequestMapping(value = "/assessment/", method = RequestMethod.GET)
public String showPage(ModelMap model, Principal principal) {
[...]
List<Assessment> list = new ArrayList<Assessment>();
[...]
model.addAttribute("assessments", list);
[...]
model.addAttribute(REQUEST_VIEW, new Gson().toJson(requestView));
return "assessment"; //name of your page in spring config
}
然后把你的配置放在 Spring 和你的 Pom.只需使用您配置的名称即可从那里轻松访问信息。
<table class="table-row-selected">
<tbody>
<div th:each="assessment : ${assessments}" th:remove="tag">
<tr th:attr="ng-click='selectedAssessment(\''+ ${assessment.getTypeCode()}+'\' , \'' +${assessment.getName()} +'\', \'' +${assessment.isLookUpSaid()} +'\', \'' +${assessment.getLanguages()} +'\');', ng-mouseover='refreshDescription(\''+ ${assessment.getDescription()}+'\')'">
<td><strong th:text="${assessment.getName()}"></strong></td>
</tr>
</div>
</tbody>
</table>
实际上,它更多的是关于 Spring 活页夹而不是 thymeleaf
。每当用户添加新输入时,然后通过使用 JavaScript 将 <input name="ingredients[0]" />
附加到表单。之后每次将索引递增 1,因此,下一个追加将是 <input name="ingredients[1]" />
。等等。有关详细信息,请参阅此 answer。
我想添加用户输入字段的动态列表。组合这些不同的输入并将它们作为列表从视图传递到控制器。 这是我的域名 class
public class HTMLPage {
@Size(min = 3)
@NotNull
private List<String> ingredients;
@Size(min = 5)
@NotNull
private List<String> method;
@Size(min = 3)
@NotNull
private String recipeName;
//getter setters
}
我对百里香完全陌生。我已经完成了所有可能的教程。有多种方法可以迭代列表,但我找不到 动态输入字符串列表 并将完整的 HTMLPage 对象发送到我的控制器的方法。
您需要做的第一件事是为您的页面创建一个控制器。从那里你加载到 spring 信息,在你的例子中是列表,在我的例子中我使用了一个包含很多不同东西的 ModelMap。
@RequestMapping(value = "/assessment/", method = RequestMethod.GET)
public String showPage(ModelMap model, Principal principal) {
[...]
List<Assessment> list = new ArrayList<Assessment>();
[...]
model.addAttribute("assessments", list);
[...]
model.addAttribute(REQUEST_VIEW, new Gson().toJson(requestView));
return "assessment"; //name of your page in spring config
}
然后把你的配置放在 Spring 和你的 Pom.只需使用您配置的名称即可从那里轻松访问信息。
<table class="table-row-selected">
<tbody>
<div th:each="assessment : ${assessments}" th:remove="tag">
<tr th:attr="ng-click='selectedAssessment(\''+ ${assessment.getTypeCode()}+'\' , \'' +${assessment.getName()} +'\', \'' +${assessment.isLookUpSaid()} +'\', \'' +${assessment.getLanguages()} +'\');', ng-mouseover='refreshDescription(\''+ ${assessment.getDescription()}+'\')'">
<td><strong th:text="${assessment.getName()}"></strong></td>
</tr>
</div>
</tbody>
</table>
实际上,它更多的是关于 Spring 活页夹而不是 thymeleaf
。每当用户添加新输入时,然后通过使用 JavaScript 将 <input name="ingredients[0]" />
附加到表单。之后每次将索引递增 1,因此,下一个追加将是 <input name="ingredients[1]" />
。等等。有关详细信息,请参阅此 answer。