2011-01-21 133 views
0

我有一個header.jsp,我想包含在多個頁面中。標題頁面中有三個鏈接。我正在使用CSS來向用戶指示他們在任何給定點上的哪個頁面。下面是header.html中的代碼:jsp選擇語句

<ul> 
    <%-- Check for the activeState parameter to decide which css to use --%> 
    <c:choose> 
     <c:when test='${requestScope.activeState == "home"}'> 
      <li><a href="index.jsp" class="active"><span>Home</span></a></li> 
     </c:when> 
     <c:otherwise> 
      <li><a href="index.jsp"><span>Home</span></a></li> 
     </c:otherwise> 
    </c:choose> 

    <c:choose> 
     <c:when test='${requestScope.activeState == "about"}'> 
      <li><a href="about.jsp" class="active"><span>About Us</span></a></li> 
     </c:when> 
     <c:otherwise> 
      <li><a href="about.jsp"><span>About Us</span></a></li> 
     </c:otherwise> 
    </c:choose> 

    <c:choose> 
     <c:when test='${requestScope.activeState == "contact"}'> 
      <li><a href="contact.jsp" class="active"><span>Contact Us</span></a></li> 
     </c:when> 
     <c:otherwise> 
      <li><a href="contact.jsp"><span>Contact Us</span></a></li> 
     </c:otherwise> 
    </c:choose> 
</ul> 

這是index.jsp文件所說:

<jsp:include page="header.jsp"> 
    <jsp:param value="home" name="activeState"/> 
</jsp:include> 

這是行不通的。 index.html頁面顯示了六個鏈接。三個與CSS和三個沒有CSS。下面是源看起來像index.html頁面:

<c:choose> 
    <c:when test='false'> 
     <li><a href="index.jsp" class="active"><span>Home</span></a></li> 
    </c:when> 
    <c:otherwise> 
     <li><a href="index.jsp"><span>Home</span></a></li> 
    </c:otherwise> 
</c:choose> 

<c:choose> 
    <c:when test='false'> 
     <li><a href="about.jsp" class="active"><span>About Us</span></a></li> 
    </c:when> 
    <c:otherwise> 
     <li><a href="about.jsp"><span>About Us</span></a></li> 
    </c:otherwise> 
</c:choose> 

<c:choose> 
    <c:when test='false'> 
     <li><a href="contact.jsp" class="active"><span>Contact Us</span></a></li> 
    </c:when> 
    <c:otherwise> 
     <li><a href="contact.jsp"><span>Contact Us</span></a></li> 
    </c:otherwise> 
</c:choose> 

我也嘗試過使用的param.activeState代替requestScope.activeState獲得ActiveState的參數。行爲沒有變化。有人可以解釋發生了什麼事嗎?

回答

2

如果您看到HTML源未解析JSTL標記,那麼就意味着要麼JSTL標籤庫是沒有在JSP的頂部聲明如下

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

或JSTL根本沒有安裝所有。請按照我們的JSTL wiki page中的說明下載並安裝它。