[英]JSP get/post with Spring MVC
我正在嘗試創建一個注冊表單。 在此表單中有一些字段(用戶名,密碼等)以及下拉列表框。 我的問題是這個listbox。我設法從服務器成功檢索將添加到列表框中的所有項目,我想知道將它放在這個表單中。
更具體地說,我有一個名為lista的列表,其中包含我要在列表框中添加的項目。
JSP:
<c:url var="attinto" value="/reg" />
<form:form modelAttribute="attribute" method="POST" action="${attinto}">
<table>
.
.
<tr>
<td><form:label path="researchareas">Research area:</form:label></td>
<td>
<select multiple="multiple">
<c:forEach items="${researchareas}" var="researcharea">
<option value="${researcharea}"> ${researcharea} </option>
</c:forEach>
</select>
</td>
</tr>
控制器:
@RequestMapping(value = "/reg", method = RequestMethod.GET)
public String getform(Model model) {
getAll(model);
model.addAttribute("attribute", new Reg());
return "reg";
}
我必須在這一點上提到getAll(model)是一個類似於以下的void方法:
model.addAttribute("researchareas",lista);
然后我創建一個POST方法來發送這些數據。
問題:如何在表單中添加列表中的數據(進入列表框)?我如何收回用戶將選擇的值?
首先,使用form:select
如下:
<form:select path="researchareas" items="${researchareas}" multiple="true" />
然后Spring可以自動綁定Registration對象中的相應屬性:
@RequestMapping(value = "/registration", method = RequestMethod.POST)
public String getRegistrationForm( //
@ModelAttribute("registrationAttribute") Registration registration, //
BindingResult result, Model model) {
...
return ...
}
假設注冊課程具有以下內容:
public class Registration {
String username;
String password;
List<String> researchareas;
... corresponding getters and setters here
}
雖然我將name屬性命名為class,否則你必須在方法參數注釋中指定顯式名稱。
請在jsp中指定表單中的post方法,並在控制器中指定method = RequestMethod.POST 。
還有一件事。
在您的注冊類中,不應該將列表作為研究員的數據類型。 嘗試將數據類型設為String []
希望這對你有用。 干杯。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.