[英]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: <span><%= request.getParameter("title") %></span></li>
</c:if>
<c:if test="${!empty param.instructor}">
<li class="instructor">Instructor: <span><%= request.getParameter("instructor") %></span></li>
</c:if>
<c:if test="${!empty param.artist}">
<li class="instructor">Artist: <span><%= request.getParameter("artist") %></span></li>
</c:if>
<c:if test="${!empty param.album}">
<li class="instructor">Album: <span><%= request.getParameter("album") %></span></li>
</c:if>
</ul>
當前結果:
我可以正確地包含include.jsp,但是即使ARTIST和ALBUM為空白,它們的列表項仍然會顯示。 我在這里做錯了什么?
那是您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.