所以基本上我有
- 宣誓书控制器-控制器
- 宣誓书.jsp-获取视图页面
- summary.jsp-POST视图页
所以基本上我有一个表单,用户填写,然后点击提交按钮,它就会发布。
然后在控制器中调用此方法
@RequestMapping(value = "/affidavit", method = RequestMethod.POST)
public String post(AffidavitDetailDto affidavitDetail, HttpServletRequest request, HttpServletResponse response, Model model) {
现在,在这个方法中,我捕获了在响应对象中传递的信息。
例如,我在GET视图页面上有一个名称字段,该字段的名称为"custName">
所以我像一样捕捉它
String contactName = request.getParameter("custName");
model.addAttribute("contactName", contactName);
然后我可以在我的POST视图页面上显示它
<p>Name: ${contactName}</p>
但现在我正试图弄清楚如何对表进行同样的处理,并将其视为数组
以下是如何将其添加到GET视图页面
<table id="certEmail" name="certEmail">
<tr>
<td>${user.email}</td>
</tr>
</table>
以下是我尝试的
String[] certEmail = request.getParameterValues("certEmail");
model.addAttribute("certEmail", certEmail);
这就是我在查看页面上显示的
<div id="Emails">
<c:forEach items="${certEmail}" var="email">
<p>${email}</p>
</c:forEach>
</div>
这目前不起作用。我知道我可能只是做错了,所以请有人至少给我指一个正确的方向。我只是还没有找到一个好的谷歌查询来得到答案。
表不是表单元素(https://www.w3schools.com/html/html_form_elements.asp)。只有表单上的表单元素值才会提交到服务器。所以不是
<table id="certEmail" name="certEmail">
<tr>
<td>${user.email}</td>
</tr>
</table>
你应该有类似的东西
<table id="certEmail">
<tr>
<td>
<input type="text" name="certEmail" value="${user.email}" />
</td>
</tr>
</table>
如果你希望你的数据是可编辑的,或者
<table id="certEmail">
<tr>
<td>
${user.email}
<input type="hidden" name="certEmail" value="${user.email}" />
</td>
</tr>
</table>
如果您希望它被隐藏并重新发送到服务器。
虽然我应该指出,第二种变体通常应该避免。我建议您传递用户id,并在后端使用它来加载用户并阅读他的电子邮件。
请学习如何使用HTML表单:https://developer.mozilla.org/en-US/docs/Learn/HTML/Forms/Your_first_HTML_form