日期:2014-05-16  浏览次数:20318 次

jstl笔记(一)

el可以自动转变类型:

例:${param.count+20}

?

特殊运算符 empty 判断是否为空:${empty param.name}?

?

?

?

?

?

转载(来源网络):

*************? <c:out >? ********************************
用于向页面输出内容.
<c:out value="" default="" escapeXml="">
其中value属性是必须的.其value的值可以是字符串,也可以是el表达式.
escapeXml只能是true或false.默认是true,代表将值中的以下字符:<,>,',",&在结果串中转换成字符实体代码.
例:
<c:out value="${requestScope.te}" default="${requestScope.test}"/>
<c:out value="<hr>" escapeXml="false"/>

==== <c:set> ==========
用于在某个范围中设置某个值,或者设置某个对象的属性.
例1:
<c:set var="sessionTest" scope="session" value="sessionValue"/>
相当于脚本:session.setAttribute("sessionTest","sessionValue");
或<c:set var="sessionTest2" scope="session"><%=1+2%></c:set>

例2:
向session的范围内放置一个cart.bean.Product类型的JavaBean,id为p,然后使用<c:set>标签设置它的name属性的值,然后在另一个页面使用<c:out>将其输出.
<jsp:useBean id="p" class="cart.bean.Product" scope="session"/>
注意:cart.bean.Product类必须提供空的构造函数.否则会报java.lang.InstantiationException异常.
.........
<c:set target="${sessionScope.p}" property="name">
pen
</c:set>
另一个页面中输出:
<c:out value="${sessionScope.p.name}"/>

==========================================
为某个bean的属性赋值,除了用<c:set>还可以使用<jsp:setProperty>
如:<jsp:setProperty name="p" property="*"/>
或:<jsp:setProperty name="p" property="name"/>
或:<jsp:setProperty name="p" property="name" param="name"/>
或:<jsp:setProperty name="p" property="name" value="qiuqj"/>

*************** <c:if>? ********************
用于进行条件判断,如果它的Test属性为true,就计算它的Body.
例:
<c:if test="${2>1}">
?? 2 is greater than 1.
</c:if>

*************? <c:choose> ****************
用于条件选择,它和<c:when>以及<c:otherwise>一起使用.
此标签的内容只能由以下元素构成:
?1. 空格
? 2. 0个或多个<when>标签,<when>标签必须在<otherwise>标签之前出现
?3. 0个或多个<otherwise>标签。

<when>和<otherwise>标签的限制:
1. 这两个标签必须以<c:choose>作为父标签
2. <otherwise>标签必须作为<c:choose>的最后分支出现

<c:choose>
? <c:when test="${number<=10 && number>=1}">
????? 1<=number<=10
? </c:when>
? <c:when test="${number<=20 && number>=11}">
????? 11<=number<=20
? </c:when>
? <c:otherwise>
????? number >20 or number<1
? </c:otherwise>
</c:choose>

等同于:
if(number>=1 && number<=10)
{
??? 输出1<=number<=10
}
else if(number>=11 && number<= 20)
{
??? 输出11<=number<=20?
}
else{
??? 输出number >20 or number<1?
}

********** <c:forEach> ***********************
例1.
<c:forEach var="product" items="${p}">
?${product.name}
</c:forEach>

例2.
<c:forEach var="i" begin="1" end="10" step="2">
? ${i}
</c:forEach>

注:begin从0开始


例3. 遍历Map

<c:forEach var="prop" items="${numberMap}" begin="1" end="5">
? <c:out value="${prop.key}"/> = <c:out value="${prop.value}"/><br>
</c:forEach>

例4:查看状态

<table border="1">
<c:forEach var="product" items="${p}" varStatus="status">
??? <tr>
????? <td><c:out value="${status.index}"/></td><!--迭代的索引-->
????? <td><c:out value="${status.count}"/></td><!--已经迭代的数量-->
????? <td><c:out value="${status.current.value.name}"/></td>
????? <td><c:out value="${status.first}"/></td>
????? <td><c:out value="${status.last}"/></td>
??? </tr>?
? </c:forEach>
</table>

?

=======?? Bean标签库? ==========================
? message -- 显示一个资源文件当中的某个key值

例如:<