2011-01-21 5 views
0

У меня есть заголовок.jsp, который я хочу включить в несколько страниц. На странице заголовка есть три ссылки. Я использую css, чтобы указать пользователю, на какой странице они находятся в любой точке. Вот код для header.html:jsp select statement

<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> 

Я также пытался получить параметр ActiveState с помощью param.activeState вместо requestScope.activeState. Никаких изменений в поведении. Может кто-нибудь объяснить, что происходит?

ответ

2

Если вы видите JSTL тегов Неанализируемые в источнике HTML, то это означает, что либо JSTL TagLib не был объявлен в верхней части JSP следующим образом

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

или что JSTL не установлен на все. Загрузите и установите его в соответствии с инструкциями в нашем JSTL wiki page.