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