在 JSP 開發中,常需要在超連結 <a> 的 href 屬性中帶上動態變數。許多初學者會直接將變數名稱當作字串寫在引號裡,導致傳遞的不是變數的值,而是變數名稱本身。
String id1 = rs.getString("id");
out.println("<tr>");
out.println("<td>" + "<a href='job.jsp?id2=id1'>" + job + "</a>" + "</td>");
這樣寫會產生 job.jsp?id2=id1,後端接收到的 id2 參數值是字面上的 "id1",而非資料庫查出的實際 ID。
必須跳出字串常量,將變數 id1 的值拼接進 URL:
out.println("<td>" + "<a href='job.jsp?id2=" + id1 + "'>" + job + "</a>" + "</td>");
這樣生成的連結會類似 job.jsp?id2=123,後端用 request.getParameter("id2") 即可取得正確的數值。
+ 運算子連接。${id1})或 JSTL <c:url> 會更簡潔且安全。