簡體   English   中英

傳遞JSP參數,然后檢查它們是否存在

[英]Passing JSP Parameters, then checking if they exist

我遇到的情況是,我正在使用多個JSP包含,並且在調用這些包含的根文件中,我正在設置參數列表。 但是,在某些情況下,並非所有參數都被使用,因此永遠不會設置參數。 我想創建一個條件語句,檢查是否設置了參數,如果沒有設置,則根本不顯示其占位符。 這是我的代碼:

的index.jsp

<jsp:include page="include.jsp">
     <jsp:param name="title" value="Title of Product"/>
     <jsp:param name="instructor" value="Some Donkus"/>
     <jsp:param name="artist" value=""/>
     <jsp:param name="album" value=""/>
</jsp:include>

include.jsp

<ul>
<c:if test="${!empty param.title}">
     <li class="instructor">Title:&nbsp;<span><%= request.getParameter("title") %></span></li>
</c:if>
<c:if test="${!empty param.instructor}">
     <li class="instructor">Instructor:&nbsp;<span><%= request.getParameter("instructor") %></span></li>
</c:if>
<c:if test="${!empty param.artist}">
     <li class="instructor">Artist:&nbsp;<span><%= request.getParameter("artist") %></span></li>
</c:if>
<c:if test="${!empty param.album}">
     <li class="instructor">Album:&nbsp;<span><%= request.getParameter("album") %></span></li>
</c:if>
</ul>

當前結果:

  • 標題:產品標題
  • 講師:一些Donkus
  • 藝術家:
  • 專輯:

我可以正確地包含include.jsp,但是即使ARTISTALBUM為空白,它們的列表項仍然會顯示。 我在這里做錯了什么?

那是您include.jsp文件中所有的東西嗎? 如果是,則將其添加到文件頂部:

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

jsp前綴是預定義的,但JSTL的c前綴不是預定義的。

您的服務器可能無法將<c:if>識別為服務器端標簽(由於缺少taglib指令),因此不對其進行評估。

因此,它們按“原樣”發送到瀏覽器。 瀏覽器本身將忽略它們(因為它們不是HTML),而是呈現其他所有內容,包括藝術家和專輯的<li>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM