2011-01-21 5 views
0

複数のページに含めるheader.jspがあります。ヘッダーページには3つのリンクがあります。私はcssを使用して、ユーザーが指定した時点でどのページにいるかを示します。jsp choose文

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

ここでheader.htmlのためのコードです。 6つのリンクがindex.htmlページに示されています。 3つはCSSで、3つは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タグが表示された場合、それは

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

やJSTLがでインストールされていないことを次のようにJSTLタグライブラリのいずれかが、JSPの先頭で宣言されていないことを意味しすべて。 JSTL wiki pageの手順に従って、ダウンロードしてインストールしてください。