jstl语法:JSTL语法及参数
疯狂代码  azycoder/        ĵ:http:/azycoder/Java/Article26033.html
JSTL语法及参数
JSTL包含以下标签:
常用标签:如<c:out>、<c:remove>、<c:catch>、<c:>等
条件标签:如<c:><c:when>、<c:choose>、<c:otherwise>等
URL标签:如<c:import>、<c:redirect>和<c:url>等
XML标签:如<xml:out>等
国际化输出标签:如<fmt:timeZone>等
SQL标签:如<sql:query>、<sql:update>、<sql:transaction>等
般用途标签:
1.<c:out>
没有Body时语法
<c:out value=”value” [escapeXml=”{true|false}”] [default=”defaultValue”]/>
有Body时语法
<c:out value=”value” [escapeXml=”{true|false}”]>
这里是Body部分
</c:out>
名字 类型 描述
value Object 将要输出表达式
escapeXml boolean 确定以下:<,>,&,’,”在串中是否被除数默认为true
default Object 如果vaule计算后结果是null那么输出这个默认值
2.<c:>
这个标签用于在某个范围(page、request、session、application等)中使用某个名字设定特定值或者设定某个已经存在javabean对象属性他类似于<%request.Attrbute(“name”,”value”);%>
语法1:使用value属性设定个特定范围中属性
<c: value=”value” var=”varName” [scope=”{page|request|session|application}”]/>
语法2:使用value属性设定个特定范围中属性并带有个Body
<c: var=”varName” [scope=”{page|request|session|application}”]>
Body部分
</c:>
语法3:设置某个特定对象个属性
<c: value=”value” target=”target” property=”propertyName”/>
语法4:设置某个特定对象个属性并带有个Body
<c: target=”target” property=”propertyName”>
Body部分
</c:>
名字 类型 描述
value Object 将要计算表到式
var String 用于表示value 值属性如果要在其他标签中使用就是通过这 个var指定值来进行它相当于在标签定义了个变量并且这个变量只能在标签中个
scope String var有效范围可以是page|request|session|application中个
target String 将要设置属性对象它必须是javabean或则java.util.Map对象
property Object 待设定Target对象中属性名字比如在javabean中有个name属性提供了UserId思路方法那么这里填userId
3.<c:remove>
<c:remove var=”varName” [scope=”{page|request|session|application}”]/>
4.<c:catch>
这个标签相当于捕获在它里边标签抛出异常对象
<c:catch [var=”varName”]> //var是异常名字
内容
</c:catch>
条件标签
1. <c:>
语法1:无Body情况
<c: test=”testCondition” var=”varName” [scope=”page|request|session|application”]/>
语法2:有Body情况
<c: test=”testCondition” var=”varName” [scope=”page|request|session|application”]>
Body内容
</c:>
名字 类型 描述
test Boolean 表达式条件相当于中条件判断语句
var String 表示这个语句名字
scope String var这个变量作用范围
2.<c:choose>
语法:<c:choose>
Body内容(<c:when>和<c:otherwise>子标签)
</c:choose>
注意:它Body只能由以下元素组成:
1) 空格
2) 0或多个<c:when>子标签<c:when>必须在<c:otherwise>标签的前出现.
3) 0个或多个<c:otherwise>子标签
3.<c:when>
代表是<c:choose>个条件分支,只能在<c:choose>中使用
语法:<c:when test=”testCondition”> //test是boolean类型,用于判断条件真假
Body语句
</c:when>
4.<c:otherwise>
代表是<c:choose>中最后选择必须在最后出现
<c:otherwise>
内容
</c:otherwise>
迭代标签
1.<c:forEach>
语法1:在Collection中迭代
<c:forEach[var=”varName”] items=”collection” [varStatus=”varStatusName”]  [begin=”begin”] [end=”end”] [step=”step”]
Body内容
</c:foeEach>
语法2:迭代固定次数.
<c:forEach [var=”varName”] [varStatus=”varStatusName”]
[begin=”begin”] [end=”end”] [step=”step”]
Body内容
</c:foeEach>
名字 类型 描述
var String 迭代参数它是标签参数在其他标签中通过它来引用这个标签中内容
Items Collection、ArrayList、 要迭代items集合.
Iterator、Map、String、
Eunmeration等
VarStatus String 表示迭代状态可以访问迭代自身信息
Begin  表示开始迭代位置
End  表示结束迭代位置
Step  表示迭代移动步长默认为1
URL相关标签
1.<c:import>
语法1:资源内容使用String对象向外暴露
<c:import url=”url” [context=”context”]
[var=”varName”] [scope=”{page|request|session|application}”] [charEncoding=”charEncoding”]>
内容
</c:import>
语法2:资源内容使用Reader对象向外暴露
<c:import url=”url” [context=”context”]
varReader=”varReaderName” [charEncoding=”charEncoding”]>
内容
</c:import>
名字 类型 描述
url String 待导入资源URL可以是相对路径和绝对路径并且可以导入其他主机资源  context String 当使用相对路径访问外部context资源时context指定了这个资源名字  var String 参数名字jstl常用标签有哪些
scope String var参数作用范围
cahrEncoding String 输入资源编码
varReader String 这个参数类型是Reader,用于读取资源
2.<c:redirct>
语法1:没有Body情况.
<c:redirect url=”value” [context=”context”]/>
语法2:有Body情况下在Body中指定查询参数
<c:redirect url=”value” [context=”context”]>
<c:param name=”name” value=”value”/>
</c:redirect>
3.<c:url>
语法1:没有Body
<c:url value=”value” [context=”context”] [var=”varName”]
[scope=”{page|request|session+application}”]/>
语法2:有Body
<c:url value=”value” [context=”context”] [var=”varName”]
[scope=”{page|request|session+application}”]>
<c:param name=”name” value=”value”/>
</c:url>
名字 类型 描述
value String URL值
context String 当使用相对路径访问外部context资源时context指定了这个资源名字
var String 标识这个URL标量
Scope String 变量作用范围
SQL相关标签
1.<sql:DataSource>
2.<sql:query>
3.<sql:update>
4.<transaction>
5.<param>
1、c:forTokens
类似于js及java中split将个串用某个分割成然后逐个处理items是需要处理原始串delims是分隔符
<c:forTokens var="item" items="s" delims=".">
${item }<br/>
</c:forTokens>
2、fmt.tld中比较有用fmt:parseDate, fmt:formatDate, fmt:parseNumber, fmt:formatNumber用来格式化时间和数字例子如下:
<fmt:formatDate value="${atedTime }" pattern="yyyy-MM-dd HH:mm" />
3、fn.tldjstl其中有
fn:contains 判断个串是否含有另外个串eg <c: test="${fn:contains(str, searchString)}">;
fn:containsIgnoreCase 同上面tag只是不区分大小写;
fn:endsWith 判断个串是否以某个字串结束eg <c: test="${fn:endsWith(filename, ".txt")}">
fn:escapeXml 将串转换为没有xml无法识别串eg ${fn:escapeXml(info)}
fn:indexOf 判断某个在个串中位置eg ${fn:indexOf(name, "-")}
fn:join 同jsjoin将用拼接eg ${fn:join(.gif' />, ";")}
fn:length 计算串长度
fn:replace 替换某个字串 eg ${fn:replace(text, "-", "•")}
fn:split join反过程eg ${fn:split(customerNames, ";")}
fn:startsWith 是否以某个字串开始 eg <c: test="${fn:startsWith(product.id, "100-")}">
fn:sub 获取字串eg ${fn:sub(zip, 6, -1)}
fn:subAfter 从某个字串开始取字串eg ${fn:subAfter(zip, "-")}
fn:subBefore 上条反过程
fn:toUpperCase 把串中全部转为大写
fn:trim 去掉串两边空格eg ${fn.trim(name)}          2009-2-12 5:01:29
疯狂代码 azycoder/