我目前拥有上面显示的图片。我可以在文本框中输入文本,然后单击“结果”下的“提交”。如何在不覆盖以前消息的情况下编写脚本?例如;当我输入另一封电子邮件并点击提交时,它应显示在Hello@gmail.com下面,而不是覆盖它。此外,当用户单击提交时,如何将其响应保存在与页面上显示的内容对应的列表中?如果文本被删除,它也应该从java列表中删除它。
控制器
@Controller
public class EmailController {
@GetMapping("/editprop")
public String greetingForm(Model model) {
model.addAttribute("greeting", new Greeting());
return "editprop";
}
@PostMapping("/editprop")
public String greetingSubmit(@ModelAttribute Greeting greeting) {
System.out.println(greeting.getEmail() + "@@@@@@@@");
return "editprop";
}
}
editprop thymeleaf
<h1>Form</h1>
<form action="#" th:action="@{/editprop}" th:object="${greeting}" method="post">
<p>Email: <input type="text" th:field="*{email}" /></p>
<p><input type="submit" value="Submit" /> <input type="reset" value="Reset" /></p>
</form>
<h1>Result</h1>
<p th:text="'Email: ' + ${greeting.email}" />
<a href="/greeting">Submit another message</a>
POJO的
public class Greeting {
private String email;
//getter and setters
尝试
为了不覆盖以前的文本,我决定创建一个表并使用th:foreach iterStat:来显示列表中的每个值。所以,我真正的问题是每次点击sumbit时如何将值保存到列表中?
答案 0 :(得分:0)
向会话对象添加电子邮件:
pluralize(@quantity, t("interval._#{@interval}"))
循环播放电子邮件:
public String greetingSubmit(@ModelAttribute Greeting greeting, HttpSession session) {
List<String> emails = (List<String>) session.getAttribute("emails");
if (emails == null) {
session.setAttribute("emails", emails = new ArrayList<String>());
}
emails.add(greeting.getEmail());
在实际的应用程序中,您可能会将电子邮件存储在数据库中,而不是使用这样的会话。