JSTL大概有一下几个库(2009-08-30):
1.以c开头的核心库;
2.以fmt开头的国际化库,也可以称为格式化库;
3.以fn开头的函数库,函数库可以扩展,jstl提供的函数有时候可能不够用;
4.以sql开头的操作数据库的标签,但不常用;
5.以x开头的操作xml的库。
今天先学习了核心库:
一、通用标签
1.<c:out > 用于输出信息。
<c:out>有两种语法格式:
①Without a body
<c:out value=”value” [escapeXml=”{true|false}”]
[default=”defaultValue”] />
②With a body
<c:out value=”value” [escapeXml=”{true|false}”]>
default value
</c:out>
value:是你要输出的信息的来源;
default:当要输出的信息为null时默认显示的字符串,default的值可以用①的格式,写在<c:out>的defaul属性中,
也可以利用 ②的格式写在<c:out>标签里面;
escapeXml:是否解析html字符串,默认为True,也就是不解析,原样输出;
2.<c:set>用于声明变量,可以用scope指定声明的范围。
语法格式:
<c:set value=”value”
var=”varName” [scope=”{page|request|session|application}”]/>
value:用于指定变量的值;
var:用于指定变量的名;
scope:设定变量可以使用的范围;
3.<c:remove> 用于删除不用的变量。
语法格式:
<c:remove var=”varName”
[scope=”{page|request|session|application}”]/>
var:用于指定要删除的变量名;
scope:指定搜索变量的范围,如果不指定就是从page范围开始搜索。
二、分支判断标签
1.<c:if>用于分支判断,就像是java里面的if语句,满足条件的时候,输出什么信息。
语法格式:
<c:if test=”testCondition”
var=”varName” [scope=”{page|request|session|application}”]/>
Test:用于指定判断条件,里面接EL表达式;
var:指定一个变量的名字,把判断的结构写在指定的变量里。
2.<c:choose>, <c:when>, <c:otherwise>
这三个标签要一起使用,个人感觉就像是java中的select...case, 用于分支判断。
这三个标签使用时有一定的要求
①<c:choose>不能单独使用;
②<c:when>至少有一个,还必须出现在<c:otherwise>的前面;
③<c:otherwise>最多只能出现一次。
一般的时候,这三个标签一起使用,用来做分支输出。