JSTL 核心标签C

20 篇文章 0 订阅


  *<c:out >:  用于输出,本身EL表达式就可以完成输出,为什么还要用这个呢,这里面有一个default参数,就是当为空时,可以默认输出default里面的内容,这个EL表达式是不能做到的。 例如:<c:out value="${ abc }" default="不存在abc变量" /> -->如果在服务器端没有setAttribute abc 的值,那么此时就会输出:不存在abc变量 这样的结果。 另外一种写法:<c:out value="${abc}" >不存在abc变量</c:out>

  如果value中的值不是EL表达式,则直接打印出其中的字符串。

    还可以设置out的escapeXml属性:分为true和false,true是默认属性,即把内容原样输出;false是转意输出,比如输出的如果是html代码,则可以按html效果输出。

  *<c:if>: 用于条件判断,例如 :<c:if test="${ empty value1 }" var="v">value1为空</c:if>  此句代码的含义是:如果value1为空的话,则打印出 -->value1为空 并把判断结果放在v变量中。 

  *<c:choose>,<c:when>,<c:otherwise>: 用于条件分支选择,例如:

    <c:choose>

        <c:when test="${ empty value1 }">

          value1为空!

        </c:when>

        <c:otherwise>

          value1不为空!

        </c:otherwise>

        </c:choose>

  可以有多个<c:when>,<c:when>必须在<c:otherwise>的前面

  *<c:forEach>: 用于循环打印输出,例如:

    <table border="1" width="100%">

      <tr>

        <td>姓名</td>

        <td>年龄</td>

        <td>所属组</td>

      </tr>

      <c:choose>

        <c:when test="${ empty userlist}">

          <tr>

            <td colspan="3">没有符合条件的数据!</td>

          </tr>

        </c:when>

        <c:otherwise>

          <c:forEach items="userlist" var="user">

            <tr>

              <td>${ user.userName}</td>

              <td>${ user.userAge}</td>

              <td>${ user.group.groupName}</td>

            </tr>

          </c:forEach>

        </c:otherwise>

      </c:choose>

    </table>

  现在有另外一个需求,要求偶数行的背景设置为红色,则可以这样写代码:

    <table border="1" width="100%">

      <tr>

        <td>姓名</td>

        <td>年龄</td>

        <td>所属组</td>

      </tr>

      <c:choose>

        <c:when test="${ empty userlist}">

          <tr>

            <td colspan="3">没有符合条件的数据!</td>

          </tr>

        </c:when>

        <c:otherwise>

          <c:forEach items="userlist" var="user" varStatus="vs">

            <c:choose>

              <c:when test="${ vs %2 == 0 }">

                <tr bgcolor="red">

              </c:when>

              <c:otherwise>

                <tr>

              </c:otherwise>

            </c:choose>

              <td>${ user.userName}</td>

              <td>${ user.userAge}</td>

              <td>${ user.group.groupName}</td>

            </tr>

          </c:forEach>

        </c:otherwise>

      </c:choose>

    </table>

    也可以在<forEach>标签中加入begin, end, step 参数,代表从第几个开始输出,每次输出的步长为多少,如<c:forEach items="userlist" var="user" begin="2" end="8" step="2">。

    还可以用<forEach:>标签循环取得Map中的值。例如:

    <c:forEach items="mapvalue" var="v">

      ${ v.key } = ${ v.value }<br>

    </c:forEach>

    这样就循环输出Map的内容了。


  *<c:forTokens>: 用于按特定的字符分隔的输出。例如:

    假设在服务器端有这样的代码:request.setAttribute("strTokens", "1, 2, 3, 4, 5") ;

    <c:forTokens items="strTokens" delims="," var="v" >

      ${ v } <br>

    </c:forTokens>


  *<c:url>: 用于生成一个url 地址。例如:

    <c:url value="http://localhost/sysmgr/add_user.jsp" var="v">

      <c:param name="userName" value="Jack" />

      <c:param name=“userAge" value=30 />

    </c:url>

     <a href="${ v }">增加用户</a>

  

  *<c:set>:用于设置一个变量的值,或者变量属性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值