jsp中c标签的详细使用

JSP标准库标签 ———C标签

目的:简化JSP页面

通常我们编写代码在jsp页面中需要判断或者循环时,需要用到c标签,比如<c:if>、<c:forEach>

那么我们就需要在jsp页面中添加这行代码,才能提示出代码

**<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>**

接下来的是核心标签库的标签:

标签 描述
<c:out>: 类似于java表达式,但是表达式。
<c:set>: 在某个范围内设置表达式的值。
<c:remove>: 删除一个域变量(从一个特殊的被指定的范围)。
<c:catch>: 抛出任何发生在它的主体中的异常,并且有选择的公开它。
<c:if>: 简单的条件标签,如果提供的条件是true,则执行标签体的内容。
<c:choose>: 简单的条件标签,用标签和建立一个互斥条件操作的上下文。
<c:when>: 简单的子标签,如果它的条件为“true”,则运行标签体的内容。
<c:otherwise>: 简单的子标签,它出现在标签之后,只有当先前的条件结果为“false”运行它。
<c:import>: 检索绝对或相对的URL并且显示它的内容到其他的页面,在“var”中的一个String类型,或者在“varReader”中的一个Reader类型。
<c:forEach>: 基本的迭代标签,接受多种不同的集合类型,支持子集和其他的功能。
<c:forTokens>: 迭代使用分隔符,分隔提供的定界符。
<c:param>: 添加一个参数到包含“import”标签的URL。
<c:redirect>: 重新定向到的一个新的URL。
<c:url>: 创建一个带有选项查询参数的URL。
标签详解:http://www.cnblogs.com/EasonJim/p/6958979.html

通用标签:

1、 <c:out value=“…” default=“…” escapeXml=“true”>
escapeXml:将value中的特殊符号进行转义。如果不指定为false,那么默认值为true。
value:输出到浏览器中的值
default:value值找不到时的默认值

例:

        <c:out value="hello word!" />
        <%
            pageContext.setAttribute("username", "jack");
        %>
        <br />
        用户名:<c:out value="${username}" /> <br />
        用户名:<c:out value="${fdusername}" default="未知"/> <br />
        
        链接:<c:out value="<a href='#'>下载</a>" escapeXml="false" /> <br />
        链接:<c:out value="<a href='#'>下载</a>" escapeXml="true" />  <br />
        链接:<c:out value="<a href='#'>下载</a>" /> <br/>    

2、<c:set var/value/scope/target/property>
var: 有两成含义。变量名 和 存入域对象的名称。
target和property是针对于javaBean的。

例:

       <c:set var="name" value="杰克" scope="page"/>
        <c:out value="${name}" /> <br />

        <jsp:useBean  />
        <c:set target="${user}" property="userName" value="jack" />
        <c:out value="${user.userName}" /> <br />
        
        <%
            Map<String, Integer> map = new HashMap<String, Integer>();
            pageContext.setAttribute("map", map);
        %>
        <c:set target="${map}" property="key"  value="jack"/>
        <c:set target="${map}" property="value" value="7000"/>
        
        <c:out value="${map.key}" /> <br />
        <c:out value="${map.value}" />

3、<c:remove />
<c:remove var=“varName” [scope=“{page|request|session|application}”]>

例:

        <c:set var="name" value="jack" scope="page" />
        <c:out value="${name}" default="未知" />
        <c:remove var="name" scope="page"/>
        <c:out value="${name}" default="未知" />

4、<c:catch var=“…”>
…可能出错的代码
</c:cath>
var:会将错误信息封装在此

例:

        <c:catch var="message">
            <%
                int a = 10/0;
            %>
        </c:catch>
        <c:out value="${message}" default="无异常!" />

5、<c:if var/test/scope >
var:保存test属性的结果。true or false
test:布尔值决定是否处理标签体中的内容
scope:将test属性的结果保存到哪个域对象中。

例:

        <c:if test="${25>16}" var="flag" scope="request">
            25>16
        </c:if>
        <jsp:forward page="value.jsp" />

6、<c:choose>
<c:when test=“…”>
。。。
</c:when>
<c:otherwise>
。。。
</c:otherwise>
</c:choose>

例:

        <c:choose>
            <c:when test="${param.age > 16}">
                你成年了
            </c:when>
            <c:otherwise>
                你还未成年
            </c:otherwise>
        </c:choose>

**${param.age} 得到地址栏参数age的值

7、c:forEach var/items/varStatus/begin/end/step> … </c:forEach>

​ var:将当前迭代到的元素保存到page这个域对象中的属性名称
​ items:要进行迭代的的集合对象
​ varStatus:是个page域对象。保存着此时迭代的信息。
​ 属性:first:是否为第一个(true or false) index:当前下标
​ count:计数 end:是否为最后一个(true or false)

        <%
​          List<String> list = new ArrayList<String>();
          list.add("jack");
          list.add("merry");
          list.add("berry");
          list.add("xixi");
          list.add("sisi");
          request.setAttribute("list", list);
            %>
            <c:forEach var="item" items="${list}" varStatus="status">
                ${status.index} - ${item} - ${status.first} - ${status.last} - ${status.count} <br />
            </c:forEach
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值