0

ページ名を取得するために使用しているコードがいくつかあり、変数を文字列と比較したいのですが、ステートメントは常に「true」を返します。

<%
    String uri = request.getRequestURI();
    String pageName = uri.substring(uri.lastIndexOf("/")+1);
%>

<c:if test="${pageName != 'home.html'}" >
<script src="<%= designPath %>/javascripts/constants.js" type="text/javascript"></script>
<script src="<%= designPath %>/javascripts/application.js" type="text/javascript"></script>
<script src="<%= designPath %>/javascripts/cart.js" type="text/javascript"></script>
</c:if>
4

4 に答える 4

2

URI とページ名を取得するためにすでに純粋な Java コードを使用している場合は、if ステートメントにも純粋な Java コードを使用することをお勧めします。あなたはすでに神聖な「JSPにJavaコードはありません」というルールを破っています。

 <% 
 String uri = request.getRequestURI();
 String pageName = uri.substring(uri.lastIndexOf("/")+1);
 if( !"home.html".equals(pageName) )
 {
    out.print("<script src='" + designPath + "/javascripts/constants.js' type='text/javascript'></script>");
    out.print("<script src='" + designPath + "/javascripts/application.js' type='text/javascript'></script>");
    out.print("<script src='" + designPath + "/javascripts/cart.js' type='text/javascript'></script>");
 }
 %>
于 2013-09-25T21:39:14.667 に答える
0

コメントに反して、これは機能します (Tomcat 6.0.20) およびjstl.jar :

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
pageContext.setAttribute("pagename", "test");
%>
pagename = <c:out value="${pagename}" />
<br>
<c:if test="${pagename == 'test'}">
equal
</c:if>

等しい 印刷されます。

于 2013-09-25T21:40:45.890 に答える
0

!= または ne は、JSTL で有効な比較演算子です。タグライブラリを接頭辞cでインポートするようにしてください。そして、正気を保つために、 pageName値をエコーする必要があります。「home.html」とは異なることを確認してください。

于 2013-09-25T21:43:58.623 に答える