JSTL_core
来源:互联网 发布:443端口是什么服务 编辑:程序博客网 时间:2024/06/11 18:20
- cout
- cset
- cremove
- ccatch
- cif
- cchoosecwhen 和 cotherwise
- cforEach
- cforTokens
<c:out>
<c:out>
标签用于输出一段文本内容到 pageContext 对象当前保存的 out 对象中,在通常情况下,pageContext 对象当前保存的 out 对象的数据是输出到客户端浏览器,所以,<c:out>
标签通常用于输出一段文本对客户端浏览器。如果 <c:out>
标签输出的文本内容中包含了需要进行转义的 HTML 字符,则 <c:out>
标签会默认对它们进行 HTML 编码后再进行输出,常见特殊字符转换如下:
<
> >
& &
‘ '
“ "
<c:out>
标签有两种语法格式:
- 没有标签体的情况:
<c:out value="value" [escapeXml="true|false"] [default="defaultValue"] />
- 有标签体的情况,在标签体中指定输出的默认值:
<c:out value="value" [escapeXml="true|false"]> default value</c:out>
<c:out>
标签的属性说明如下表:
注意:
- 当且仅当 value 属性的值为 null 时,
<c:out>
标签输出默认值;如果没有指定默认值,默认为空字符串。 - 如果 value 属性不是指向一个 java.io.Reader 对象,
<c:out>
标签将调用这个对象的 toString 方法,然后输出获得的字符串内容。 - 如果 value 属性指向一个 java.io.Reader 对象,
<c:out>
标签将从这个 Reader 对象中读取数据后进行输出,当有大量数据要被输出时,将这些数据以对象的形式提供给<c:out>
标签进行输出,将会极大提高系统性能。
<c:set>
<c:set>
标签用于设置各种 Web 域中的属性,或者设置 Web 域中的 java.util.Map 类型的属性对象或 JavaBean 类型的属性对象的属性。
<c:set>
标签有四种语法格式:
- 使用 value 属性设置指定域中的某个属性的值:
<c:set value="value" var="varName" [scope="page|request|session|application"] />
- 在标签体中设置指定域中的某个属性的值:
<c:set var="varName" [scope="page|request|session|application"]> body content</c:set>
- 使用 value 属性设置 Web 域中的一个属性对象的某个属性:
<c:set value="value" target="target" property="propertyName" />
- 在标签体中设置 Web 域中的一个属性对象的某个属性:
<c:set target="target" property="propertyName"> body content</c:set>
<c:set>
标签的属性说明如下表:
注意:
- 如果使用第 1 种语法格式时的 vlaue 属性值为 null,或者会用第 2 种语法格式时的标签体内容为空,
<c:set>
标签将从 scope 域范围中删除 var 属性指定的属性。 - 在第 3、4 两种语法格式中:
- 如果 target 属性的值是 java.utl.Map 对象,property 属性表示该 Map 对象的 key,如果 Map 对象没有指定的 key,就给 Map 对象增加指定的 key;
- 如果 target 属性的值是 JavaBean 对象,property 属性表示 JavaBean 对象的属性,如果该 value 的类型与 JavaBean 属性的类型不匹配时,会根据 EL 的转换规则自动进行转换;
- 如果 target 属性的值为 null(即 target 属性的值指定的对象不存在),或者 target 属性的值是一个 JavaBean 对象,但该 JavaBean 对象中不存在 property 属性指定 的属性,
<c:set>
标签将抛出异常;
- 如果使用第 3 种语法格式时 value 属性的值为 null,或者使用第 4 种语法格式时标签体的内容为空,
- 如果 target 属性的值是一个 java.util.Map 对象,就从该 Map 对象中删除 property 属性指定的关键字对应的项;
- 如果 target 属性的值是一个 JavaBean 对象,就将该 JavaBean 的相应属性的值设置为 null。
<c:remove>
<c:remove>
标签用于删除各种 Web 域中的属性,其语法格式如下:
<c:remove var="varName" [scope="page|request|session|application"] />
var 属性用于指定要删除的属性的名称,必需的;scope 属性用于指定要删除的属性所属的 Web 域,它们的值都不能接受动态值。如果没有指定 scope 属性,<c:remove>
标签就调用 pageContext.removeAttribute(varName) 方法,否则就调用 pageContext.removeAttribute(varName, scope) 方法。<c:remove>
与 <c:set>
标签第 1 种语法格式的 value 属性值为 null 时的作用相同。
<c:catch>
<c:catch>
标签用于捕获嵌套在标签中的内容抛出的异常,其语法格式如下:
<c:catch [var="varName"]> nested action</c:catch>
var 属性用于标识 <c:catch>
标签捕获的异常对象,其值是一个静态的字符串,不支持动态属性值。<c:catch>
标签将捕获的异常对象以 var 指定的名称保存到 page 这个 Web 域中,如果没有指定 var 属性,则 <c:catch>
标签仅捕获异常,不在 page 域保存异常对象。如果 <c:catch>
标签体中的内容没有抛出异常,<c:catch>
标签将从 page 域中删除 var 属性指定的属性。
<c:catch>
标签可以捕获任何标签抛出的异常,并且可以同时处理多个标签抛出的异常,这样,可以对 JSP 页面的异常时行统一的处理。
JSP 处理异常的通用机制是出现重要异常后跳转到错误处理页面,建议尽量不要用 <c:catch>
标签来代替 JSP 的错误处理机制,只对一些次要异常才使用 <c:catch>
标签进行捕获处理。
<c:if>
JSP 页面的显示逻辑中也经常需要进行条件判断,<c:if>
标签可以构造简单的 “if-then” 结构的条件表达式,如果条件表达式的结果为真就执行标签体部分的内容。
<c:if>
标签有如下两种语法格式:
- 没有标签体的情况:
<c:if test="testCondition" var="varName" [scope="page|request|session|application"] />
- 有标签体的情况,在标签体中指定要执行的内容:
<c:if test="testCondition" [var="varName"] [scope="page|request|session|application"] />
<c:if>
标签属性说明如下表:
注意:
对于语法 2 ,如果指定了标签的 scope 属性,则必须指定 var 属性。
<c:choose>
、<c:when>
和 <c:otherwise>
<c:choose>
标签用于指定多个条件选择的组合边界,它必须与 <c:when>
和 <c:otherwise>
标签一起使用。使用 <c:choose>
,<c:when>
和 <c:otherwise>
三个标签,可以构成类似 “if-else if-else” 的复杂条件判断结构。
<c:choose>
标签没有属性,在它的标签体内只能嵌套一个或多个 <c:when>
标签和 0 个或一个 <c:otherwise>
子标签,并且同一个 <c:choose>
标签中的所有 <c:when>
子标签必须出现在 <c:otherwise>
子标签之前。如果 <c:choose>
标签内嵌套一个 <c:when>
标签和 <c:otherwise>
标签,就相当于 “if-else” 的条件判断结构;如果 <c:choose>
标签内嵌套多个 <c:when>
标签和一个 <c:otherwise>
标签,就相当于 “if-else if-else” 的条件判断结构。
<c:when>
标签只有一个 test 属性,该属性的值为布尔类型。test 属性支持动态值,其值可以是一个条件表达式,如果条件表达式的值为 true,就执行这个 <c:when>
标签体的内容。<c:when>
标签体的内容可以是任意的 JSP 代码。
<c:otherwise>
标签没有属性,它必须作为 <c:choose>
标签的最后分支出现。
<c:forEach>
<c:forEach>
标签用于对一个集合对象中的元素进行循环迭代操作,或者按指定的次数重复执行标签体中的内容。
<c:forEach>
标签有两种语法格式:
- 循环迭代操作集合对象中的元素
<c:forEach [var="varName"] items="collection" [varStatus="varStatusName"] [begin="begin"] [end="end"] [step="step"]> body content</c:forEach>
- 迭代执行固定次数的标签体内容
<c:forEach [var="varName"] [varStatus="varStatusName"] begin="begin" end="end" [step="step"]> body content</c:forEach>
<c:forEach>
标签属性说明如下表:
注意:
- 如果指定 begin 属性,其值必须大于或等于零
- 如果指定步长(step 属性),其值必须大于或等于 1
- 如果 items 属性的值为 null,则要处理的集合对象为空,这时不执行迭代操作
- 如果指定的 begin 属性大于或等于集合对象的长度,不执行迭代操作
- 如果指定的 end 属性的值小于 begin 属性的值,不执行迭代操作
<c:forEach>
标签的 items 属性的值支持下面的数据类型:
- 任意类型的数组
- java.util.Collection
- java.util.Iterator
- java.util.Enumeration
- java.util.Map
- String
items 属性还支持与数据库有关的数据类型 java.sql.Result(包括 javax.sql.RowSet),这些数据类型通常结合数据库标签使用。对字符串的迭代操作通常使用 <c:forTokens>
标签或 JSTL 函数。
<c:forTokens>
<c:forTokens>
标签专门用于实现类似 java.util.StringTokenizer 类的迭代功能,但它是以单个字符为分隔符,同时可以指定多个字符作为多个并行的分隔符。
<c:forTokens>
标签的语法格式如下:
<c:forTokens items="stringOfTokens" delims="delimiters" [var="varName"] [varStatus="varStatusName"] [begin="begin"] [end="end"] [step="step"]> body content</c:forTokens>
<c:forTokens>
标签属性说明如下表:
注意:
- 如果指定 begin 属性,其值必须大于或等于零
- 如果指定步长(step 属性),其值必须大于或等于 1
- 如果指定的 end 属性的值小于 begin 属性的值,不执行迭代操作
- JSTL_core
- XML解析技术
- 部分软件不能联网的问题
- Hibernate 中的 Configuration 的创建方式及其作用
- Java技术点和知识点归纳
- Linux unzip命令
- JSTL_core
- 面向对象软件工程与UML及设计原则
- acm 3 1023 offer
- 端口Banner抓取
- cadence中一些常见英文的含义
- LinearRegression LogisticRegression And OtherRegression
- Android平台程序崩溃的类型及原因总结(来自本人cnblogs博客)
- Xutils3的使用
- Unicode、UTF-8 和 ISO8859-1 区别