Tôi cần hiển thị tất cả các giá trị của một enum là <option>
yếu tố. Tôi đã đạt được điều này bằng scriptlets:Làm thế nào để hiển thị tất cả các giá trị của một enum là <option> yếu tố?
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="errors" tagdir="/WEB-INF/tags/jostens/errors" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
...
<%
Class<?> c = CarrierCode.class;
for (Object carrier : c.getEnumConstants()) {
CarrierCode cc = (CarrierCode) carrier;
StringBuilder sb = new StringBuilder();
Formatter formatter = new Formatter(sb, Locale.US);
out.print(formatter.format("<option value='%s'>%s</option>\n", cc.getMfCode(), cc.name()));
}
%>
...
Tuy nhiên, tôi muốn thực hiện nó sử dụng JSTL/EL mã thay vì. Tôi làm nó như thế nào?
UPDATE:
Spring có một cách dễ dàng hơn để làm điều này ngay bây giờ. Trước tiên, thêm các thẻ làm việc của khung hình mùa xuân <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
sau đó nếu bạn chỉ khai báo lựa chọn nơi biến trong đường dẫn là một trường hợp Enum, tự động tìm các phần tử khác.
<form:select path="dataFormat.delimiter" class="dataFormatDelimiter">
<form:options items="${dataFormat.delimiter}"/>
</form:select>
@BalusC Cảm ơn bạn đã chỉnh sửa rõ ràng hơn bây giờ. – kasdega
Có thể trùng lặp [lặp lại các hằng số Enum trong JSP] (http://stackoverflow.com/questions/141611/iterating-over-enum-constants-in-jsp) – Stewart