一:JSTL的优点
使用JSTL标签的优点在于,在应用服务器之间提供了一致的借口,最大程度的提高了Web应用在各服务器之间的移植,简化了JSP和WEB应用程序的开发,它还封装了JSP开发中常用功能。
二:常用的标签
1.<c:out>:它一般用来输出结果到JspWriter对象上。它里面可以带有Body,如果带有Body,那么Body中的输出不会发送到客户端。
<c:out value="value" [escapeXml="{true|false}"] [default="defaultValue"]/>
带Body的:
<c:out value="value" [escapeXml="{true|false}"] [default="defaultValue"]>default value</c:out>里面可以是JSP代码,也可以是字符串。
${test_session}是一种表达式语言,通过session.setAttribut("test_ssion","testValue_session")在session中设置一个名字为"test_ssion"的属性,那么就可以通过 ${test_session}来获取这个属性的值。request和application等同,获取时候可以用<c:out value="${test_session}">输出这个属性的值。
2.<c:set>这个标签用于在某个范围<request,session application>中设置某个值,或者设置某个对象的值。两种用法同样也分带Body和不带两种,用法分别是:
<c:set value="value" var="varName"[scope="{page|request|session|application}"]/>
<c:set var="varName"[scope="{page|request|session|application}"]>body content</c:set>
<c:set value="value" target="taget" property="propertyName"/>
<c:set target="taget" property="propertyName">body content</c:set>
value:要计算的表达式或常量.var:用于表示value值的属性. scope:var的有效范围. target:将要设置属性的对象,它必须是JavaBeans或者java.util.Map对象. property:待设置的target对象的属性名字.
<c:set value="hk2" target="${user}" property="userName"/>
<c:set target="$user" property="password">asdfdf</c:set>
还有些标签<c:remove><c:catch>先略过,等要用上再慢慢来.
3.<c:forEach>:用来简化进行迭代操作,在一个包括一系列的Collection中计算它们的内容,或者重复迭代固定的次数。
在Collection中迭代
语法:<c:forEach[var="varName"] items="Collection" [varStatus="varStatusName"] [begin="begin"][end="end"][step="step"]>body content</c:forEach>
举例:Collections users=new ArrayList();.......具体单个对象定义;session.setAttribute("users",users);迭代输出:<c:forEach var="users" items="${users}">中间是具体单个对象的属性输<c:out value="${users.userName}"></c:forEach>
迭代固定的次数
语法: <c:forEach[var="varName"] [varStatus="varStatusName"] begin="begin"end="end"[step="step"]>body content</c:forEach>
举例:<c:forEach var="i' begin="1" end="10"><c:out value="${i}"/></c:forEache>