3 JSP标签技术
在JSP页面中写入大量的java代码会导致JSP页面中html代码和java代码混杂在一起,会造成页面非常的混乱,难于维护。
于是在JSP的2.0版本中,sun提出了JSP标签技术,推荐使用标签来代替JSP页面中java代码,并且推荐,JSP2.0以后不要在JSP页面中出现任何一行java代码。
3.1 EL表达式
格式:${ 常量、表达式、变量 }
注意:放在EL中的变量必须得现存入作用域中, 才能获取到。
主要作用:
(1)用于从作用域中获取数据,例如:从request域中获取域属性的值
(2)将常量、表达式的值以及从作用域中获取到的数据输出到当前位置
EL使用示例:
(1)通过EL获取常量、表达式或变量的值(得先存入域中),示例:
(2)通过EL获取作用域中的数组或集合中的数据/元素
servlet中的代码:
JSP中的代码:
(3)通过EL获取作用域中的map集合中的数据/元素
servlet中的代码:
JSP中的代码:
(4)通过EL获取作用域中对象的属性值
servlet中的代码:
JSP中的代码:
3.2 JSTL标签库
JSTL标签库是为JavaWeb开发人员提供的一套标准通用的标签库;
JSTL标签库和EL配合使用取代JSP中大部分的Java代码;
在使用JSTL标签库之前, 需要完成两件事儿:
其中常用的标签如下:
1、<c:set></c:set> – 往四大作用域中添加域属性,或者修改四大作用域中已有的属性
(1) 往四大作用域中添加一个域属性
(2) 修改四大作用域中已有的属性
如果重复添加相同的属性,值会发生覆盖,相当于修改.
如果在通过cset标签往域中添加属性时,没有指定scope,默认存入的域是pageContext域。
c_set标签属性总结:
2、<c:if></c:if> – 构造if…else…语句
test属性用于指定判断的条件,注意:JSTL中没有提供else对应的标签
当test中的布尔表达式结果为true时, 则会输出标签中的内容, 否则将不会输出!!
示例:
3、<c:forEach></c:forEach> – 对集合或数组等中元素进行循环遍历或者是执行指定次数的循环.
c_forEach标签属性总结: