JSP条件语句

时间:2013-09-25 21:28:53

标签: java jsp

我有一些代码用于获取页面名称,我想将变量与字符串进行比较 - 但语句总是返回“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 个答案:

答案 0 :(得分:4)

应该尝试:

<c:if test="${pageName ne 'home.html'}" >

答案 1 :(得分:2)

如果您已经使用纯Java代码来获取uri和页面名称,那么您也可以使用纯java代码来获取if语句。因为你已经打破了神圣不可侵犯的“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>");
 }
 %>

答案 2 :(得分: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>

等于 打印出来。

答案 3 :(得分:0)

要么!=或ne是JSTL中的有效比较运算符。只需确保导入带有前缀 c 的标记库。为了理智,您应该回显 pageName 值。只是为了确保它与'home.html'不同。

相关问题