一、JSP动作标签
与JSP指令元素不同的是,JSP动作元素在请求处理阶段起作用。JSP动作元素是用XML语法写成的。
利用JSP动作可以动态地插入文件、重用JavaBean组件、把用户重定向到另外的页面、为Java插件生成HTML代码。
动作元素只有一种语法,它符合XML标准:
<jsp:action_name attribute="value" />
动作元素基本上都是预定义的函数,JSP规范定义了一系列的标准动作,它用JSP作为前缀,可用的标准动作元素如下:
语法 | 描述 |
jsp:include | 在页面被请求的时候引入一个文件。 |
jsp:useBean | 寻找或者实例化一个JavaBean。 |
jsp:setProperty | 设置JavaBean的属性。 |
jsp:getProperty | 输出某个JavaBean的属性。 |
jsp:forward | 把请求转到一个新的页面。 |
jsp:plugin | 根据浏览器类型为Java插件生成OBJECT或EMBED标记。 |
jsp:element | 定义动态XML元素 |
jsp:attribute | 设置动态定义的XML元素属性。 |
jsp:body | 设置动态定义的XML元素内容。 |
jsp:text | 在JSP页面和文档中使用写入文本的模板 |
1.JSP常用动作标签
<jsp:include>动作元素
<jsp:include page="相对 URL 地址" flush="true" />
与jsp指令相比:<%@ include file=""%> 生成一个文件,又称静态包含
<jsp:include page=” /”> 生成两个文件,包含的和被包含的,又称动态包含
注:
1、page=“path” 为相对路径,或者代表相对路径的表达式。
2、flush=“true” 必须使用flush为true,它默认值是false。
3、jsp:param子句能让你传递一个或多个参数给动态文件,也可在一个页面中使用多个jsp:param来传递多个参数给动态文件。
<jsp:useBean>动作元素
jsp:useBean 动作用来加载一个将在JSP页面中使用的JavaBean。
jsp:useBean动作最简单的语法为:
<jsp:useBean id="name" class="package.class" />
<jsp:setProperty>动作元素
标签表示用来设置Bean中的属性值。
<jsp:setProperty name="idname" property="" value=""/>
注:
使用 jsp:setProperty 来为一个Bean的属性赋值;可以使用两种方式来实现。
1、在jsp:useBean后使用jsp:setProperty:
<jsp:useBean id=“myUser” … />
…
<jsp:setProperty name=“user” property=“user” … />
在这种方式中,jsp:setProperty将被执行。
2、jsp:setProperty出现在jsp:useBean标签内:
<jsp:useBean id=“myUser” … >
…
<jsp:setProperty name=“user” property=“user” … />
<jsp:useBean>动作元素
在这种方式中,jsp:setProperty只会在新的对象被实例化时才将被执行。
在jsp:setProperty中的name值应当和jsp:useBean中的id值相同。
jsp:getProperty标签表示获取BEAN的属性的值并将之转化为一个字符串,然后将其插入到输出的页面中。
<jsp:getProperty name="idname" property=""/>
注:
1、在使用jsp:getProperty之前,必须用jsp:useBean来创建它。
2、不能使用jsp:getProperty来检索一个已经被索引了的属性。
3、能够和JavaBeans组件一起使用jsp:getProperty,但是不能与Enterprise Java Bean一起使用。
<jsp:forward>动作元素
标签表示重定向一个静态html/jsp的文件,或者是一个程序段。
<jsp:forward page="path"} />
or
<jsp:forward page="path"} >
<jsp:param name="paramName" value="paramValue" />……
</jsp:forward>
注:
1、page=“path” 为一个表达式,或者一个字符串。
2、jsp:param name 指定参数名,value指定参数值。参数被发送到一个动态文件,参数可以是一个或多个值,而这个文件却必须是动态文件。要传递多个参数,则可以在一个JSP文件中使用多个jsp:param将多个参数发送到一个动态文件中。
JSP动作标签:http://www.imooc.com/wenda/detail/561909
二、JSP 表达式语言
JSP表达式语言(EL)使得访问存储在JavaBean中的数据变得非常简单。JSP EL既可以用来创建算术表达式也可以用来创建逻辑表达式。在JSP EL表达式内可以使用整型数,浮点数,字符串,常量true、false,还有null。
1.EL中的基础操作符
EL表达式支持大部分Java所提供的算术和逻辑操作符:
操作符 | 描述 |
. | 访问一个Bean属性或者一个映射条目 |
[] | 访问一个数组或者链表的元素 |
( ) | 组织一个子表达式以改变优先级 |
+ | 加 |
- | 减或负 |
* | 乘 |
/ or div | 除 |
% or mod | 取模 |
== or eq | 测试是否相等 |
!= or ne | 测试是否不等 |
< or lt | 测试是否小于 |
> or gt | 测试是否大于 |
<= or le | 测试是否小于等于 |
>= or ge | 测试是否大于等于 |
&& or and | 测试逻辑与 |
|| or or | 测试逻辑或 |
! or not | 测试取反 |
empty | 测试是否空值 |
2.JSP EL中的函数
JSP EL允许您在表达式中使用函数。这些函数必须被定义在自定义标签库中。函数的使用语法如下:
${ns:func(param1, param2, ...)}
ns指的是命名空间(namespace),func指的是函数的名称,param1指的是第一个参数,param2指的是第二个参数,以此类推。比如,有函数fn:length,在JSTL库中定义,可以像下面这样来获取一个字符串的长度:
${fn:length("Get my length")}
要使用任何标签库中的函数,您需要将这些库安装在服务器中,然后使用标签在JSP文件中包含这些库。
3.JSP EL隐含对象
JSP EL支持下表列出的隐含对象:
隐含对象 | 描述 |
pageScope | page 作用域 |
requestScope | request 作用域 |
sessionScope | session 作用域 |
applicationScope | application 作用域 |
param | Request 对象的参数,字符串 |
paramValues | Request对象的参数,字符串集合 |
header | HTTP 信息头,字符串 |
headerValues | HTTP 信息头,字符串集合 |
initParam | 上下文初始化参数 |
cookie | Cookie值 |
pageContext | 当前页面的pageContext |