我有一个这样的表格:
<form:form method="POST" action="searchProjects" commandName="projectcriteria">
<table>
<tr>
<td class="label"><spring:message code="number" /></td>
<td><form:input path="number" /></td>
<td class="label"><spring:message code="customer" /></td>
<td><form:input path="customer" /></td>
</tr>
<tr>
<td class="label"><spring:message code="name" /></td>
<td><form:input path="name" /></td>
<td class="label"><spring:message code="status" /></td>
<td>
<form:select path="status">
<option value=""><spring:message code="please_select" /></option>
<c:forEach var="enum" items="${allStatus}">
<option value="${enum}"><spring:message code="${enum.statusEnum}" /></option>
</c:forEach>
</form:select>
</td>
</tr>
<tr>
<td colspan="4" style="text-align: center;">
<input type="submit" value="<spring:message code="search"/>" />
<input type="button" value="<spring:message code="reset_criteria"/>" />
</td>
</tr>
</table>
</form:form>
Projectcriteria和StatusEnum是这样的:
public enum StatusEnum {
INV("Invalidate"),
TOV("Validate"),
VAL("Validated"),
FIN("Finished");
private String name;
private StatusEnum(String name) {
this.name = name;
}
public String getStatusEnum() {
return this.name;
}
}
public class ProjectCriteria {
private long number;
private String name;
private String customer;
private StatusEnum status;
/**
* @return the number
*/
public long getNumber() {
return number;
}
/**
* @param number the number to set
*/
public void setNumber(long number) {
this.number = number;
}
/**
* @return the name
*/
public String getName() {
return name;
}
/**
* @param name the name to set
*/
public void setName(String name) {
this.name = name;
}
/**
* @return the customer
*/
public String getCustomer() {
return customer;
}
/**
* @param customer the customer to set
*/
public void setCustomer(String customer) {
this.customer = customer;
}
/**
* @return the status
*/
public StatusEnum getStatus() {
return status;
}
/**
* @param status the status to set
*/
public void setStatus(StatusEnum status) {
this.status = status;
}
}
如何将ProjectCriteria类中的StatusEnum属性填充到jsp页面。我需要将哪些内容放入控制器?
非常感谢您的帮助。
答案 0 :(得分:5)
在Controller方法中添加枚举值,向各个页面发出请求,即
model.addAttribute("enumValues",StatusEnum.value());
然后使用foreach在下拉菜单中迭代 enumValues 。
答案 1 :(得分:3)
您可以试试这个(抱歉代码未经测试):
<c:forEach var="enum" items="${StatusEnum.values()}">
<option value="${enum}"><spring:message code="${enum.name}" /></option>
</c:forEach>
注意:如果您的enum
类具有包名称,则可能必须在items
属性中包含完全限定的类名。您也可以从控制器传递enum
作为模型属性(?)。