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

JSP 中 if-else 條件判斷完整用法與最佳實務

     編輯:關於JSP

JSP 中的 <% ... %> 腳本片段可直接撰寫 Java 語法,if-else 是最基礎的流程控制。本文從單一條件、複合語句、巢狀判斷、多重 else-if 到現代標籤替代方案完整說明。

一、基本語法

<%@ page contentType="text/html;charset=UTF-8" %>
<html><body>
<%
    int score = 85;
    if (score >= 60) {
        out.println("及格:" + score);
    } else {
        out.println("不及格:" + score);
    }
%>
</body></html>

重點:大括號 { } 建議恆加,避免單行陳述式日後擴充產生邏輯錯誤。

二、巢狀 if-else

<%
    int x = 10, y = 5;
    if (x > 0) {
        if (y > 0) {
            out.println("第一象限");
        } else {
            out.println("第四象限");
        }
    } else {
        out.println("非第一/四象限");
    }
%>

三、多重 else-if 階梯

<%
    String grade = "B";
    if ("A".equals(grade)) {
        out.println("優等");
    } else if ("B".equals(grade)) {
        out.println("甲等");
    } else if ("C".equals(grade)) {
        out.println("乙等");
    } else {
        out.println("其他");
    }
%>

字串比較務必用 equals(),切勿用 ==(比較參考位址)。

四、EL + JSTL 替代腳本片段(推薦)

JSP 2.0+ 建議移除 Java 代碼,改用 <c:if>、<c:choose>:

<%@ taglib prefix="c" uri="https://java.sun.com/jsp/jstl/core" %>

<c:if test="${score >= 60}">
    及格:${score}
</c:if>
<c:if test="${score < 60}">
    不及格:${score}
</c:if>

<!-- 多重互斥條件用 choose -->
<c:choose>
    <c:when test="${grade == 'A'}">優等</c:when>
    <c:when test="${grade == 'B'}">甲等</c:when>
    <c:when test="${grade == 'C'}">乙等</c:when>
    <c:otherwise>其他</c:otherwise>
</c:choose>

優點:可讀性高、支援 EL 運算式、無腳本片段安全風險、易於前端設計師維護。

五、三元運算子在 EL 中的應用

<!-- 簡單二選一 -->
結果:${score >= 60 ? '及格' : '不及格'}

<!-- 巢狀三元(不建議超過兩層) -->
等級:${score >= 90 ? 'A' : (score >= 60 ? 'B' : 'C')}

六、常見錯誤與避坑指南

錯誤寫法問題正確寫法
if (str == "yes")字串比較參考if ("yes".equals(str))
if (flag = true)指派而非比較if (flag) 或 if (flag == true)
省略大括號後續加行易出錯恆加 { }
JSP 混合 HTML 斷行輸出含大量空白用 out.print 或 JSTL

七、現代化建議

  1. 禁用 Scriptlet:web.xml 設定 <jsp-config><jsp-property-group><scripting-invalid>true</scripting-invalid>...。
  2. 統一用 JSTL/EL:邏輯移至 Controller/Service,JSP 僅負責呈現。
  3. 複雜條件:封裝為 Java Bean 方法或自訂 EL 函數 ${my:checkPermission(user, 'ADMIN')}。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved