pageContext和request.contextPath的知识讲解
代码” 1${pageContext.request.contextPath}”的作用是取出部署的应用程序名,这样不管如何部署,所用路径都是正确的
2就是EL表达式 获取当前项目名,绝对路径
3pageContext对象提供了对JSP页面内所有的对象及名字空间的访问,
4request.getContextPath()其作用是获取当前的系统路径pageContext.getRequest()得到HttpServletRequest对象${pageContext.request.contextPath}样是通过 get方法去取的,先pageContext.getRequest()得到HttpServletRequest对象,再调用 HttpServletRequest的getContextPath方法作用是取出部署的应用程序名,这样不管如何部署,所用路径都是正确的。
El表达式的写法:${pageContext.request.contextPath}
jsp的写法:<%=request.getContextPath()%>
实例 上一页,下一页,页码条
<c:forEach var="pagenum" items="${pagebean.pagebar}">
<a href="${pageContext.request.contextPath}/servlet/ListCustomerServlet?currentpage=${pagenum}">${pagenum}</a>
</c:forEach>
<a href="${pageContext.request.contextPath}/servlet/ListCustomerServlet?currentpage=${pagebean.nextpage}">下一页</a>
forEach小知识
我们常会用c标签来遍历需要的数据,为了方便使用,varStatus属性可以方便我们实现一些与行数相关的功能,如:奇数行、偶数行差异;最后一行特殊处理等等。先就varStatus属性常用参数总结下:
${status.index} 输出行号,从0开始。
${status.count} 输出行号,从1开始。
${status.current} 当前这次迭代的(集合中的)项
${status.first} 判断当前项是否为集合中的第一项,返回值为true或false
${status.last} 判断当前项是否为集合中的最后一项,返回值为true或false
begin、end、step分别表示:起始序号,结束序号,跳跃步伐。
如:<c:forEach begin='1' end='5' step='2' items='${list}' var='item'>
表示:操作list集合汇中1~5条数据,不是逐条循环,而是按每2个取值。即操作集合中的第1、3、5条数据。