JSTL教程

<c:forEach>

  1. 使用: <c:forEach items="${movieList }" var="movie" varStatus="movieIndex"> <tr><td>\({movieIndex.count } <td>\){movie }

</c:forEach> 说明

  • 循环嵌套 <c:forEach items="${alllist }" var="outer" varStatus="outIndex"> <c:forEach items="${outer }" var="inner" varStatus="innerIndex"> <tr><th>outIndex<td>\({outIndex.count }<th>innerIndex<th>\){innerIndex.count}<td>${inner } </c:forEach>

    </c:forEach> 说明

    <c:if>

    1. 使用 <c:if test="${usertype eq acttype}"> <h3>userType is ${usertype }</h3>

    </c:if> 说明

    <c:choose>

    1. 使用 <c:choose> <c:when test="${usertype eq 'neal' }"> UserType is ${usertype } </c:when> <c:when test="${acttype eq 'hrmzone' }"> ActType is ${acttype } </c:when> <c:otherwise> not of all </c:otherwise>

    说明

    <c:set>

    1. 使用 <c:set var="user1" value="${usertype }" />

    <c:set var="user2"> jobs,neal </c:set> ${user1 } ${user2 } ${author.nickname } <c:set target="${author }" property="nickname"> nickname </c:set> ${author.nickname } 说明

    <c:import>

    1. 使用 <c:import url="http://hrmzone.cn/about.html">

    说明

    <c:url>

    1. url重写技术
    2. 使用:
      • <c:url value="url" /> //只重写,不会进行编码,如空格等;
      • <c:url value="url?first=${first} /> //可以做编码问题,先定义的变量,到服务器之后再传给url,可以杜绝非法编码问题。
      • <c:url value="url> <c:param> </c:url> //同时完成编码与重写,因为<c:param>会处理编码。
    3. 效果同:response.encodeURL();

    自定义错误页面

    1. 可以通过<%@ page isErrorPage="true" %>,指定某个页面为错误页面;
    2. 在DD中配置错误页面
      • 可以根据<exception-type>\<error-code>两种方式配置错误页面
      • 代码: <error-page> <error-code>404</error-code> <location>/404.jsp</location> </error-page> <error-page> <error-code>500</error-code> <location>/500.jsp</location> </error-page>
    3. <location>的页面必须相对于web-app跟上下文,就是和必须用/开头
      • 错误页面代码: <h3>ErrorMessage(自定义的错误页面):</h3> <h3>服务器内部错误(500)</h3> <p>${pageContext.exception } <p>${pageContext.errorData } <img src="/2013.jpg">
      • 要使用${pageContext.exception},必须要引入:<%@ page isError="true"%>