我的JSP中有以下代码,这些代码不太起作用:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<c:set var="contextPath" value="${pageContext.request.contextPath}" />
<c:set var="requestURI" value="${pageContext.request.requestURI}" />
<c:set var="isPeople" value="${fn:contains(requestURI, '/People/')}" />
<c:set var="isJobs" value="${fn:contains(requestURI, '/Jobs/') || fn:endsWith(requestURI,contextPath+'/')}" />
基本上,isPeople工作正常 - 它会检查用户是否在我的任何网页上都有'/ People /',并稍后使用它来显示相应的子菜单。
现在,如果他们在'/ Jobs / *'或应用程序根目录下,我想知道isJobs是真的,但是我的简单||不编译,它给了我这个错误:
An exception occurred processing JSP page /sitemesh/main.jsp at line 7
请帮助,谢谢!
答案 0 :(得分:1)
实际上,字符串连接在EL中不起作用。
以下内容应该有效:
<c:set var="contextPath" value="${pageContext.request.contextPath}/" />
<c:set var="requestURI" value="${pageContext.request.requestURI}" />
<c:set var="isPeople" value="${fn:contains(requestURI, '/People/')}" />
<c:set var="isJobs" value="${fn:contains(requestURI, '/Jobs/') || fn:endsWith(requestURI, contextPath)}" />
请注意,我将结尾斜线从fn:endsWith
移至<c:set value>
。