发表于: 2017-06-17 17:24:31
1 1124
今日完成
java小课堂Tiles框架
上传到简书
JSP标准标签库(JavaServer Pages Standard Tag Library,JSTL)是一个定制标签库的集合,用来解决像遍历map或集合、条件测试、XML处理,甚至数据库访问和数据操作等常见的问题。
JSTL库
JSTL是标准标签库,但它是通过多个标签库来暴露其行为的。JSTL1.2中的标签可以分成5类区域
在JSP页面中使用JSTL库,必须通过一下格式使用taglib指令:
<%@ taglib uri="uri" prefix="prefix" %>
要使用Core库,必须在JSP页面的开头处做以下声明:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
这个前缀可以是任意的。但是,采用惯例能使团队的其他开发人员以及后续假如改项目的其他人员熟悉这些代码。因此,建议使用预定的前缀。
一般行为
下面介绍Core库中用来操作有界变量的3个一般行为:put、set、remove.
out标签
out标签在运算表达式时,是将结果输出到当前的JspWriter。out的语法有两种形式,即有body content和没有body content.
<c:out value="value" [escapeXml="{true|false}"]
[default="defaultValue"]/>
<c:out value="value" [escapeXml="{true|false}"]>
default value
</c:out>
下列的out标签将输出有界变量X的值
<c:out value="{x}"/>
默认情况下,out会将特殊字符<、>、‘、“和&分别编写成它们相应的字符实体吗<、>、'、&034;和&
在JSP2.0版本前,out标签是用于输出有界对象值的最容易的方法。在JSP2.0以及其更搞的版本中,除非需要对某个值进行XML转义,否则可以放心使用EL表达式:${x}
out中的default属性可以赋一个默认值,当赋予其value属性的EL表达式返回null时,就会显示默认值。default属性可以赋动态值,如果这个动态值返回null,out就会显示一个空的字符串。
例如,在下面的ou标签中,如果HttpSession中没有找到myVar变量,就会显示应用程序范围的变量myVar值。如果没有找到,则输出一个空的字符串。
set标签
使用set标签可以完成
1 创建一个字符串和一个引用该字符串的有界变量
2 创建一个引用现存有界对象的有界变量
3 设置有界对象的属性
如果用set创建有界变量,那么,在该标签出现后的整个JSP页面中都可以使用该变量。
创建一个有界变量,并用value属性在其中定义一个要创建的字符串或现存有界对象
<c:set value="value" var="varName"
[scope="{page|request|session|application}"]/>
这里的scope属性指定了有界变量的范围。
set标签创建了字符串"The wisest fool",并将它赋给新创建的页面范围变量foo:
<c:set var="foo" value="The wisest fool"/>
set标签创建一个名为job的有界变量,它引用请求范围的对象postition.变量job的范围为page。
<c:set var="job" value="${requestScope.position}" scope="page"/>
第二种形式,创建的字符串或者要引用的有界对象是作为body content赋值的
<c:set var="varName" [scope="{page|request|session|application}"]>
body content
</c:set>
第二种形式允许在body content中有JSP代码
第三种形式是设置有界对象的属性值。target属性定义有界对象,以及有界对象的property属性。对该属性的赋值是通过value属性进行的
<c:set target="target" property="propertyName" value="value"/>
下面的set标签是将字符串”TOKYO"赋予有界对象address的city属性
<c:set target="${address}" property="city" value="Tokyo"/>
必须在target属性中用一个EL表达式来引用这个有界对象
第四中形式与第三种形式相似,只是赋值作为bodycontent完成
<c:set target="target"property="propertyName">
body content
</c:set>
下面的set标签是将字符串"Beijing"赋予有界对象address的city属性
<c:set target="${address}" property="city">Beijing</c:set>
remove标签用于删除有界变量,有界变量引用的对象不能删除
条件行为用于处理页面输出取决于特定输入值的情况,在Java中是利用if、if else、和switch声明解决的
JSTL执行条件行为的有四个标签 if choose when otherwise
遍历行为
forEach和ForTokens两个执行遍历行为的标签
与URL相关的行为 url和redirect标签
格式化行为
格式化和解析数字与日期的标签
formatNumber、formatDate、timeZone、setTimeZone、parseNumber和parseDate
函数
${fn:functionName}
收获
JSTL标签
困难
无
明日计划
收尾任务4
评论