JSP操作使用XML语法结构来控制servlet引擎的行为. 您可以动态地插入文件,重组JavaBean组件,将用户切换到另一个页面或为Java插件生成HTML.
操作元素只有一种语法,因为它符合XML标准:
<jsp:action_name attribute="value" />
Action元素基本上是具有以下JSP操作的预定义功能:
语法目的
jsp: include
请求页面时,请包含文件
jsp: useBean
找到或实例化JavaBean
jsp: setProperty
JavaBean属性集
jsp: getProperty
将JavaBean属性嵌入到输出中
jsp: forward
将请求转发到新页面
jsp: plugin
生成特定于浏览器的代码,以为Java插件创建OBJECT或EMBED标签
jsp: element
XML元素的动态定义
jsp: 属性
定义动态定义的XML元素的属性
jsp: body
定义动态定义的XML元素的主体
jsp: text
用于在JSP页面和文档中编写模板
对于所有操作元素,共有两个属性: id属性和scope属性.
此操作使您可以将文件插入将要生成的页面. 语法如下:
<jsp:include page="relative URL" flush="true" />
此操作与include指令不同. 当JSP页面转换为servlet时,include指令将插入文件. 当请求页面时,此操作将插入文件.
以下是与包含操作相关的属性的列表:
属性说明
页面
要包含的页面的相对URL.
冲洗
布尔属性确定是否在包含资源之前清除包含的资源的缓冲区.
让我们定义以下两个文件(a)date.jsp和(b)main.jsp,如下所示:
以下是date.jsp文件的内容:
<p> Today's date: <%= (new java.util.Date()).toLocaleString()%> </p>
以下是main.jsp文件的内容:
<html> <head> <title>The include Action Example</title> </head> <body> <center> <h2>The include action Example</h2> <jsp:include page="date.jsp" flush="true" /> </center> </body> </html>
现在,将所有这些文件保存在根目录中,然后尝试访问main.jsp. 这将显示结果jsp实例教程,如下所示:
The include action Example
Today's date: 12-Sep-2010 14:54:22
useBean操作具有多种用途. 它首先使用id和scope变量搜索现有对象. 如果找不到对象,则它将尝试创建指定的对象.
加载bean的最简单方法如下:
<jsp:useBean id="name" class="package.class" />
在加载bean类之后,可以使用jsp: setProperty和jsp: getProperty操作来修改和检索bean属性.
以下是与useBean操作关联的属性的列表:
属性说明
班
指定该bean的所有软件包名称.
类型
指定将在对象中引用的变量的类型.
beanName
bean名称由java.beans.Beans类中的Instantiate()方法给定.
在给出与这些操作有关的有效示例之前,让我们讨论一下jsp: setProperty和jsp: getProperty操作.
setProperty操作设置bean的属性. 在定义此操作之前,必须已预定义Bean. 使用setProperty操作的基本方法有两种:
在可以使用jsp: setProperty之后,但在操作之外,请按如下所示使用jsp: useBean元素:
<jsp:useBean id="myName" ... />
...
<jsp:setProperty name="myName" property="someProperty" .../>
在这种情况下,无论实例化新bean还是发现现有bean,都将执行jsp: setProperty.
jsp: setProperty可以出现的第二个背景是在jsp: useBean元素内部,如下所示:
<jsp:useBean id="myName" ... >
...
<jsp:setProperty name="myName" property="someProperty" .../>
</jsp:useBean>
在这里,当且仅当实例化一个新对象时,才会执行jsp: setProperty,如果找到了现有对象,则将不执行它.
以下是与setProperty操作相关的属性的列表:
属性说明
名称
指定将设置其属性的bean. 该bean必须已经预先定义.
财产
表示要设置的属性. 值“ *”表示所有名称与bean属性名称匹配的参数都将传递给适当的setter方法.
值
分配给给定属性值的值. 如果参数的值为null或参数不存在,则将忽略setProperty操作.
param
param属性是请求参数的名称jsp实例教程,它将接收请求参数的值. 您不能同时使用值和参数,但允许使用其中之一.
The
getProperty操作用于检索给定属性的值并将其转换为字符串,最后将其插入输出中.
getProperty操作只有两个属性,这两个属性都是必需的. 其简单语法如下:
<jsp:useBean id="myName" ... />
...
<jsp:getProperty name="myName" property="someProperty" .../>
以下是与setProperty操作相关的属性的列表:
属性说明
名称
具有检索到的属性的bean的名称. 必须先定义Bean.
财产
The
property属性是要检索的bean属性的名称.
让我们定义一个测试bean,在示例中使用如下:
/* File: TestBean.java */
package action;
public class TestBean {
private String message = "No message specified";
public String getMessage() {
return(message);
}
public void setMessage(String message) {
this.message = message;
}
}
编译以上代码以生成TestBean.class文件,并确保将TestBean.class复制到C: \ apache-tomcat-7.0.2 \ webapps \ web-inf \ classes \ action文件夹中,并且类路径变量应也为此文件夹设置:
main.jsp文件中现在使用以下代码,该文件加载Bean并设置/获取简单的字符串参数:
<html> <head> <title>Using JavaBeans in JSP</title> </head> <body> <center> <h2>Using JavaBeans in JSP</h2> <jsp:useBean id="test" class="action.TestBean" /> <jsp:setProperty name="test" property="message" value="Hello JSP..." /> <p>Got message....</p> <jsp:getProperty name="test" property="message" /> </center> </body> </html>
现在尝试访问main.jsp,将出现以下结果:
Using JavaBeans in JSP
Got message....
Hello JSP...
forward操作终止当前页面的操作,并将请求转发到另一个资源,例如静态页面,另一个JSP页面或Java Servlet.
该操作的简单语法如下:
<jsp:forward page="Relative URL" />
以下是与转发操作相关的属性的列表:
属性说明
页面
应包括其他资源的相对URL,例如静态页面,另一个JSP页面或Java Servlet.
让我们如下重用以下两个文件(a)date.jsp(b)main.jsp:
以下是date.jsp文件的内容:
<p> Today's date: <%= (new java.util.Date()).toLocaleString()%> </p>
以下是main.jsp文件的内容:
<html> <head> <title>The include Action Example</title> </head> <body> <center> <h2>The include action Example</h2> <jsp:forward page="date.jsp" /> </center> </body> </html>
现在让我们将所有这些文件保存在根目录中,然后尝试访问main.jsp. 这将显示类似于以下结果的结果. 这里,首页的内容被丢弃,仅显示转发页面中的内容.
Today's date: 12-Sep-2010 14:54:22
插件用于将Java组件插入JSP页面. 它确定浏览器的类型以及需要插入的
……