首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

JSTL 標簽遍歷 List 並在下拉框中標記選中項

     編輯:Java 相關知識

後端準備

Action/Controller 將 List<Role> roleList 放入 request:

List<Role> roleList = new ArrayList<>();
for (int i = 0; i < 5; i++) {
    roleList.add(new Role(i, "role" + i));
}
request.setAttribute("role_list", roleList);

JSP 頁面 JSTL 實現

<%@ taglib uri="https://java.sun.com/jsp/jstl/core" prefix="c" %>
<select name="role">
    <option value="">-- 請選擇 --</option>
    <c:forEach var="ro" items="${role_list}">
        <option value="<c:out value='${ro.role_id}'/>"
            <c:if test="${ro.role_id == param.selectedRoleId}">selected</c:if>>
            <c:out value="${ro.role_name}"/>
        </option>
    </c:forEach>
</select>

關鍵點

  • <c:forEach> 遍歷集合,var 定義循環變量。
  • <c:out> 輸出值並自動轉義 HTML 特殊字符,防 XSS。
  • <c:if test="${...}"> 判斷當前項目 ID 是否等於請求參數 selectedRoleId,相等則輸出 selected 屬性。
  • 若選中值存放在 session/bean 中,可改為 ${ro.role_id == user.selectedRoleId}。

完整表單示例

<form action="save.do" method="post">
    <bean:message key="user.role"/>
    <select name="roleId">
        <option value="">-- 請選擇 --</option>
        <c:forEach var="r" items="${role_list}">
            <option value="${r.role_id}" <c:if test="${r.role_id == user.roleId}">selected</c:if>>${r.role_name}</option>
        </c:forEach>
    </select>
    <input type="submit" value="保存"/>
</form>
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved