当前位置: 代码迷 >> JavaScript >> jstl札记(一)
  详细解决方案

jstl札记(一)

热度:187   发布时间:2012-11-23 22:54:33.0
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值

例如:
资源文件如下:
aaa=aaaa
bbb = bbbb{1}ddd

在jsp文件中访问:
<bean:message key="aaa"/>
<bean:message key="bbb" arg0="hello"? arg1="555"/>

输出结果:
aaaa bbbb555ddd

=======================================
? write -- 输出指定的bean的某个属性的值
例:
<%@ page contentType="text/html; charset=GBK" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
<jsp:useBean id="p" class="bean.Person" scope="request"/>
<jsp:setProperty name="p" property="name" value="zhangsan"/>
<jsp:setProperty name="p" property="sex" value="false"/>
<jsp:setProperty name="p" property="age" value="22"/>

<html>
<head>
<title>
test
</title>
</head>
<body bgcolor="#ffffff">
<h1>
JBuilder Generated JSP
</h1>
<bean:message key="aaa"/>
<bean:message key="bbb" arg0="hello" arg1="555"/>
<bean:write name="p" property="name"/>
<bean:write name="p" property="sex"/>
<bean:write name="p" property="age"/>
</body>
</html>


=========?? html标签库? =================

所有的表单域标签。

=========? logic标签库? ================
? equal? --- 判断某个属性的值和给定的值相比是否相同
? notEqual? --? 判断某个属性的值和给定的值相比是否不同
? 例:
<logic:equal name="p" property="name" value="zhangsan">
??? equal
</logic:equal>
<logic:notEqual name="p" property="name" value="zhangsan">
??? notEqual
</logic:notEqual>

?? iterate? --? 用于迭代的标签
例1:

<logic:iterate id="item" name="coll">
??? <bean:write name="item" property="name"/>
??? <bean:write name="item" property="sex"/>
??? <bean:write name="item" property="age"/>
</logic:iterate>

例2:遍历Map

<logic:iterate id="item" name="coll">
??? <bean:write name="item" property="key"/>
??? <bean:write name="item" property="value.age"/>
</logic:iterate>

?

?

?

?