与指令元素不同,动作元素在请求处理阶段起作用。
JSP规定了标准动作元素,以jsp作为前缀。
1、<jsp:param>
为其他标签提供附加信息,与include,forward和plugin一起使用。
格式如下:<jsp:param name="" value="" />
2、<jsp:include>
允许在请求时间内在现成的JSP页面里面包含静态或动态资源。被包含的对象只有对JSP writer对象的访问权,并且它不能设置头或者Cookie。效率上比<%@ page include%>
低,但是可以动态增加内容。
使用如下:<jsp:include page="fileName" flush="true"/>
或
<jsp:include page="fileName" flush="true">
<jsp:param name="paramName" value="paramValue"/>
...
</jsp:include>
其中
flush="true"
中,默认值为false,此处必须使用true。<jsp:param name="paramName" value="paramValue"/>
可以传递一个或多个参数给动态页面。
<jsp:include>
包含的是静态文件,那么仅仅是把静态文件内容加到JSP文件中,不会被编译器执行。如果是动态文件,则需要被JSP编译器执行。动态内容实在执行时才确认的。
3、<jsp:forward>
允许将请求转发到另一个JSP、Servlet或者静态资源文件。转发到的资源必须位于同JSP发送请求相同的上下文环境之中。当遇到此操作时,就停止执行当前的JSP,转而执行被转发的资源。
如:<jsp:forward page="uri"/>
<jsp:forward>
多用于登录验证。
注意,当<jsp:forward>
动作发生时,如果已经有文本被写入输出流而且页面没有设置缓冲,那么将抛出一个IllegalStateException的异常。
4、<jsp:setProperty>
与userBean协作,用来设置Bean的简单属性和索引属性。<jsp:setProperty>
使用Bean给定的setXXX()方法,在Bean中设置一个或多个属性值。
Bean的自省用来发现出现的是哪些属性和它们的名字是什么,这些属性是简单的还是索引的,它们是什么类型等。
使用如:
注意:不能在一个<jsp:setProperty>
中同时使用param和value,因为它们都是设置Bean属性值的方式。
5、<jsp:getProperty>
同理,<jsp:getProperty>
是用于获取Bean的属性值。将属性值转化为一个String,然后发送到输出流中,如果是属性是对象,则调用toString()方法。
注意:不能使用<jsp:getProperty>
检索一个已经被索引了的属性。