JSTL学习笔记2---流程控制标签

1、 <c:if>标签的使用

标签跟我们java中的if类似 ,只是表现方法不一样而已 。结构如下 :test 代表判断表达式var的结果是true还是false ,结果存于result中

注意的一点是 我们在jstl中要引用属性的时候 都要将属性名字放到"${}"中 。

<c:if test="${var}" var="result" scope="范围"/> 不带body的

<c:if test="${var}" var="result" scope="范围">

..........内部可以使jstl标签 也可以是html 也可以是文本 ,如果test=true那么 就会输出这一部分

</body>

在jsp中的使用如下:

<c:if test="${3>4}" var="result">
3>4 <br>
</c:if>
<c:out value="${result}" default="null" escapeXml="true" />

2、<c:choose>

<c:when test="${表达式}">

</c:when>

<c:otherwise>

</c:otherwise>

</c:choose>

标签类似switch语句

代码如下 :

<c:choose >
<c:when test="${1>3}">
1>3 <br>
</c:when>
<c:when test="${2==21}">
2==2 <br>
</c:when>
<c:when test="${3>11}">
3>1<br>
</c:when>
<c:otherwise>
默认输出!<br>
</c:otherwise>
</c:choose>

3、<c:forEach var="" items="${}" varstaus="" [ begin="" step="" end=""]>

</c:forEach>

标签可以迭代 实现java.util.Collection接口的类 也可以迭代 实现了 java.util.Map的类 .j

也可以迭代数组,对于数组迭代的时候 ,比如 int型数组 的每个成员会被转换成 Integer 类型 。

要注意的一点是 我们要迭代的对象必须是设置setAttribute设置的属性 。

<%
String [] strs={"11","22","33","44","55","66","77","88","99","00"} ;
request.setAttribute("strs", strs) ;
Collection col=new ArrayList(10);
for(int i=0;i<10;i++)
col.add(i) ;
request.setAttribute("col", col) ;

Map<Integer,Object> map=new HashMap<Integer,Object>() ;
map.put(10, 22);
map.put(18, 62);
map.put(85,55);
request.setAttribute("map",map) ;
Collection c=map.entrySet() ;
for(Object a:c)
{
((Map.Entry)a).getKey();
}

%>

<c:forEach items="${map}" var="str" varStatus="status">
<c:out value="${str.key}"></c:out>
<c:out value="${status.index}"/>
<c:out value="${status.count}"></c:out><br>
</c:forEach>

4、 利用 <c:forTokens items="${info}" delims="|" varStatus="stat" var="str">

</c:forTokens>

标签循环提取以 delims分割的字符串,每个子字符串保存在str中 。

varStatus 依然有四个状态 index 当前索引 count 当前字串次数 first 是否是第一个字符串 last 是否是最后一个字符串

<%

String info="a|b|c|d";

request.setAttribute("info",info);

%>

<c:forTokens items="${info}" delims="|" varStatus="stat" var="str">
<c:out value="${str}" ></c:out>
<c:out value="${stat.index}"></c:out>
<c:out value="${stat.count}"></c:out>
<c:if test="${stat.first}">这是第一个字符串</c:if>
<c:if test="${stat.last}">这是组后一个字符串</c:if>
</c:forTokens>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值