java - Thymeleaf 形式的 forEach 未发布结果
问题描述
我有表格:
<body>
<form action="#" th:action="@{/}" th:object="${wrapper}" method="post">
<tr th:each="w: ${wrapper.answers}">
<td><input type="checkbox" th:value="${w.validWithNoun}"></td>
<td th:text="${descriptor}"/>
<td th:text="${w.noun}"/><br>
</tr>
<input type="submit" value="Submit" />
</form>
</body>
但是当我到达帖子页面时,没有结果。
这是我的控制器:
@Controller
public class AskController {
@GetMapping("/")
public String ask(Model model) throws OWLOntologyCreationException {
Word word = AskUser.getWords().iterator().next();
String descriptorLabel = word.getDescriptorLabel();
Map<String, OWLNamedIndividual> askWords = word.getAskWords();
List<Answer> answers = new ArrayList<>();
for (String n : askWords.keySet()) {
Answer a = new Answer(n);
answers.add(a);
}
AnswerWrapper wrapper = new AnswerWrapper(answers);
model.addAttribute("wrapper", wrapper);
model.addAttribute("descriptor", descriptorLabel);
return "default";
}
@PostMapping("/")
public String askSubmit(@ModelAttribute AnswerWrapper wrapper) {
System.out.println("RESULTS");
for (Answer a : wrapper.getAnswers()) {
System.out.println(a.getNoun());
System.out.println(a.getValidWithNoun());
}
return "result";
}
}
我把打印件放进去看看发生了什么,但没有物体。原始页面的列表中有两个对象。
堆栈跟踪是
Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.NullPointerException] with root cause
java.lang.NullPointerException: null
at linguistics.AskController.askSubmit(AskController.java:43) ~[classes/:na]
...
解决方案
推荐阅读
- python - 如何根据以前的列有条件地设置空列值
- vue.js - axios.post.then 在其他所有内容之后被触发
- javascript - 使用 javascript 显示给定 URL 的网页内容的最佳方式是什么?
- python - 有没有办法压缩这段代码而不是使用一个大的 if-else 块?
- python - Python 3 如何从只包含一个未知键的键值对的字典中获取值?
- laravel - Laravel - 搜索日期之间的问题
- python - 在 for 循环中更改时未重新分配变量
- powershell - 如何将参数传递给 Start-Process
- python - 如何使用 python 在可执行输出中搜索文本字符串?
- javascript - 仅限 Javascript - 我提交了一个表单,但没有任何反应