JavaWeb chapter11 编写无脚本的JSP页面

时间:2024-01-17 18:21:50

1、  JSP表达式语言EL

使用jsp:getProperty的property属性只能访问Bean的属性,不能访问嵌套的属性。

JSP EL(表达式语言 Expression Language),用于方便、快捷的显示页面数据。格式${}

2、  EL表达式中隐式变量:

pageScope,requestScope,sessionScope,applicationScope,param,paramValues,cookies,header,headerValues

Scope默认先寻找page里有无对应的属性,如未找到则寻找request,再找session,再找application,如果中途找到有该属性名则显示,停止寻找,如果始终未找到,则不显示。

param.name 可以获取到表单中name对应的值。

3、  标准标签库JSTL

功能范围:

核心(core),一般用途处理的标记,前缀c;

xml,解析、选择、转换XML数据的标记,前缀x;

数据库(sql),访问关系型数据库的标记,前缀sql

国际化,为国际化应用格式化数据的标记,前缀fmt

函数(Functions),处理字符串和集合的标记,前缀fn。

4、  核心库里的常用标签:

  • <c:out value=”输出的内容” [escapeXml=”true|false”] [default=”默认值”]/>标签:主要用于输出内容,与EL或脚本表达式输出结果一样

<c:out value=”” >默认值</c:out>

default:表示如果要显示的value内容为null,则显示default定义的内容;

escapeXml:表示是否转换字符串,例如将”>”转换成”gt”,默认为true;

  • <c:set>标签:主要用于将属性保存在4种属性范围中。

语法格式1:<c:set var=”name” value=”” [scope=page]/>

语法格式2:<c:set value=”” target=”${}name” property=”name”/>

  • <c:remove>标签:主要用于删除指定范围中的指定属性,功能与removeAttribute方法类似。

语法格式:<c:remove var=”name” scope=”page”/>

  • <c:catch>标签:主要用于处理程序中产生的异常,并进行相关的异常处理。

语法格式:<c:catch [var=”e”]>有可能发生异常的语句</c:catch>

  • <c:if>标签,判断。格式:<c:if test=”条件” var=”结果” scope=””/>

<c:if test=”条件” var=”结果” scope=””>满足条件时执行的语句</c:if>

  • <c:choose><c:when><c:otherwise>标签,用于判断多个条件,相当于switch/case/when/default

格式:

<c:choose>

标签体内容(<c:when></c:when><c:otherwise></c:otherwise>)

</c:choose>

  • <c:forEach>标签,循环控制,可以将集合中的成员迭代输出,功能与Iterator接口相似。

格式:<c:forEach [var=”每一个对象的属性名称”] [items=”集合”]>标签体</c:forEach>

begin:表示集合的开始位置,默认从0开始;

end:表示集合的结束位置,默认为集合的最后一个元素;

step:表示每次迭代的间隔数,默认为1;

  • <c:forTokens>标签,用于输出操作,类似于String类中的spilt方法和循环输出的一种结合。

格式:

<c:forTokens items=”输出的字符串” delims=”字符串分隔符”>标签体</c:forTokens>

也支持begin、end、step属性。

  • <c:redirect>标签:用于重定向,与response.sendRedirect方法相同

格式:<c:redirect uri=”地址” context=”上下文路径”><c:param value=”” /></c:redirect>