J2EE Architecture(10)
J2EE Architecture(10)
1、JSP标准动作
JSP标准动作(JSP Standard Action)允许执行更高级的任务。如不在JSP页中编写Java代码就能实例化对象,并与其它服务器端资源通信。
利用特殊的JSP标记,不必编写过多的Java代码,就能在JSP页中完成“标准”操作。
尽管可以在Scriptlet在用Java代码执行操作,但操作标记能促进重用,提高JSP页面的易维护性。
标准动作主要用于减少JSP页的Java代码内容,标准动作标记极大的依赖于JavaBean组件架构。
典型的JSP标准动作语法如下:
<jsp:useBean ='bean' class='beanclass' />
注意:与标准JSP标记“<%”和“%>”不同,所有标准动作标记都用jsp作为前缀。
1)jsp:useBean标准动作
通过它,可用知道实例名和类名创建Java对象实例。这个标准动作的一个语法例子如下:
<jsp:useBean id='order' scope='session' class='OrderBean' />
它实例化一个JavaBean对象,实例名为order,java类为OrderBean,实例作用域为“会话”。
2)jsp:setProperty标准动作
它用于设置Bean属性的值。
例子:
<jsp:setProperty name='order' property='orderNumber' value='1234' />
<jsp:setProperty name='order' property='*' />
这两个例子运用不同方式设置JavaBean属性值。如果属性非常多,可用第二种方法,以便用HTML表单的可用匹配属性值,自动设置Bean属性的值。
3)jsp:getProperty标准动作
可利用它访问Bean属性。它将JavaBean实例的属性转换为Java String对象,将值放入隐性对象out。
例:
<jsp:getProperty name='order' property='orderNumber' />
4)jsp:include标准动作
它将同一上下文静态和动态资源包含进来。
需指定page属性,这个属性的内容是一个相对的URL,由Web容器解释。内容将包含在隐性对象out的当前值中。
例:
<jsp:include page='/docs/disclaimer.html' flush='true' />
5)jsp:forward标准动作
它使用page属性,在运行时,将当前请求发送给另一个静态资源,如与当前JSP页处于同一上下文的JSP页或Servlet类。
page属性将相对URL作为要转发的值。
例:
<jsp:forward page='/reports/quarterly.jsp' />
6)jsp:param标准动作
它只能在3个标准动作中使用:jsp:include、jsp:forward、jsp:plugin。它提供“键-值对”供这3个标准动作使用。
例:
<jsp:include page='/docs/copyright.html'>
<jsp:param year='current' value='2004'>
</jsp:include>
7)jsp:plugin标准动作
它允许生成HTML代码,HTML代码包含与客户浏览器相关的对应结构,如OBJECT或EMBED,可根据需要下载Java插件,接着执行相应的Applet或JavaBean。
它能够根据需要使用其它的标准动作,如jsp:param、jsp:fallback。
例:
<jsp:plugin type='applet' code='Calculator.class' codebase='itCalc'>
<jsp:param name='employee'.../>
<jsp:fallback>
<B>! Unable to load Calculator Object !<B>
</jsp:fallback>
</jsp:plugin>
如插件启动成功,并成功加载Applet,则Applet从param标记获得参数,并成功地显示计算器Applet。如插件未能启动,则HTML页将显示下列消息:
! Unable to load Calculator Object !