今天遇到一个问题,是关于JSTL表达式的,在后台许多个map,而且有嵌套的关系,并且map中的值各式各样的类型。这就需要JSTL表达式紧密的配合才能将数据体现在jsp页面上!为此特意将学习JSTL表达式发出来,供以后查阅!
核心标签库:
(1)表达式控制标签:out标签、set标签、remove标签、catch标签。
(2)流程控制标签:if标签、choose标签、when标签、otherwise标签。
(3)循环标签:forEach标签、forTokens标签。
(4)URL操作标签:import标签、url标签、redirect标签。
下面将一一介绍:
(1)
1.<c:out>标签功能:用来显示数据对象(字符串、表达式)的内容或结果。
【语法1】:
<c:out value=”要显示的数据对象” [escapeXml=”true|false”] [default=”默认值”]>
【语法2】:
<c:out value=”要显示的数据对象” [escapeXml=”true|false”]>默认值
</c:out>
qvalue:指定要输出的变量或表达式。
qescapeXml:设定是否转换特殊字符(如<、>等一些转义字符),在默认值为true的情况下直接在输出<的,如果改为false将会进行转义输出“<”等。
qdefault:为默认输出结果。如果使用表达式得到的结果为null(注意与空区别),将会输出默认结果。
2.<c:set>标签功能:主要用于将变量存取于JSP范围中或JavaBean属性中。
语法1:存值,把一个值放在指定(page、session等)的map中。
<c:set value=”值1” var=”name1” [scope=”page|request|session|application”]>
含义:把一个变量名为name1值为“值1”的变量存储在指定的scope范围内。
语法2:
<c:set var=”name2” [scope=”page|request|session|application”]>
值2
</c:set>
含义:把一个变量名为name2,值为值2的变量存储在指定的scope范围内。
语法3:
<c:set value=”值3” target=”JavaBean对象” property=”属性名”/>
含义:把一个值为“值3”赋值给指定的JavaBean的属性名。相当与setter()方法。
语法4:
<c:set target=”JavaBean对象” property=”属性名”>
值4
</c:set>
含义:把一个值4赋值给指定的JavaBean的属性名。