JSP 动作元素

2018-06-26 17:33 更新

JSP教程 - JSP动作元素


JSP动作控制底层servlet引擎的行为。

使用JSP动作,我们可以动态插入文件,重用JavaBeans组件或将用户转发到另一个页面。

以下代码是动作元素的语法:

<jsp:action_name attribute="value" />

例子

我们可以使用以下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页面和文档中写入模板文本。

JSP动作中的通用属性

所有Action元素有两个常用属性: id 属性和 scope 属性。

Id属性唯一标识Action元素。我们可以使用id来引用JSP页面中的动作。

Scope属性标识Action元素的生命周期。 scope 属性有四个可能的值:

  • page
  • request
  • session
  • application

jsp:include 动作

jsp:include动作将文件插入JSP页面。语法如下所示:

<jsp:include page="relative URL" flush="true" />

include 指令在JSP页面被翻译成servlet时包括一个文件,而jsp:include动作在请求页面时插入文件。

下表列出了与包含动作相关联的属性。

属性 描述
page 要包括的页面的相对URL。
flush boolean属性确定包含的资源在包含之前是否应使其缓冲区刷新。

以下代码显示如何使用include动作。

这里是data.jsp。

<p>
   Today"s date: <%= (new java.util.Date()).toLocaleString()%>
</p>

这里是main.jsp文件的内容:

<html>
<body>
<jsp:include page="date.jsp" flush="true" />
</body>
</html>

jsp:useBean 动作

useBean 动作首先使用 id scope 属性搜索现有对象。如果没有找到对象,它将创建指定的对象。

加载bean的最简单的方法如下:

<jsp:useBean id="name" class="java.lang.String" />

<jsp:useBean id="yourName" class="com.yourCom.YourClassName" />

一旦bean被加载,我们可以使用 jsp:setProperty jsp:getProperty 动作来修改和检索bean属性。

下表列出了与useBean动作相关联的属性。

描述 描述
class 定义bean的完整包名称。
type 指定变量的类型。
beanName 命名加载的bean。

jsp:setProperty 动作

setProperty 动作设置Bean的属性。

我们可以在jsp:useBean元素之外使用 jsp:setProperty ,如下所示。

<jsp:useBean id="myName" ... />
<jsp:setProperty name="myName" property="someProperty" .../>

或者我们可以在jsp:useBean元素的正文中包含jsp:setProperty,如下所示。

<jsp:useBean id="myName" ... >
    ...
    <jsp:setProperty name="myName" property="someProperty" .../>
</jsp:useBean>

在上面的代码中,只有在实例化新对象时才执行jsp:setProperty,而不是如果找到现有对象。

下表列出了与 setProperty 动作相关联的属性。

描述 描述
name 将设置其属性的bean的名称。
property 要设置的属性。 值“*"表示名称与bean属性名称匹配的所有请求参数都将传递到相应的setter方法。
value 要设置为属性的值。
param param属性是请求参数的名称。

jsp:getProperty 动作

getProperty 动作检索给定属性的值并将其转换为字符串,然后将其插入到输出中。

getProperty动作有两个属性,如下所示:

<jsp:useBean id="myName" ... />
...
<jsp:getProperty name="myName" property="someProperty" .../>

以下是与getProperty动作相关联的必需属性的列表。

描述 描述
name 必须先前已定义的Bean的名称。
property Bean属性的名称。

userBean示例,set/get属性

创建JavaBean如下。

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\webapps\WEB-INF\classes\action文件夹。

将以下代码保存到hello.jsp文件。

<html>
<body>
<jsp:useBean id="test" class="action.TestBean" />
<jsp:setProperty name="test" 
                    property="message" 
                    value="Hello JSP..." />
<jsp:getProperty name="test" property="message" />
</body>
</html>

jsp:forward 动作

forward 动作将请求转发到另一个静态页面,或另一个JSP页面或Java Servlet。

此动作的简单语法如下:

<jsp:forward page="relativeURL | <%= expression %>" />

下表列出了 forward 动作所需的属性。

属性 描述
page 其他资源的相对网址。

以下代码显示如何使用 forward 动作。

date.jsp文件:

<p>
   Today"s date: <%= (new java.util.Date()).toLocaleString()%>
</p>

这里是main.jsp文件:

<html>
<body>
<jsp:forward page="date.jsp" />
</body>
</html>

jsp:plugin 动作

plugin 动作可以将包含在<object>或<embed>标签中的Java applet插入JSP页面。

以下代码列出了使用插件动作的典型语法。

<jsp:plugin type="applet" codebase="dirname" code="MyApplet.class"
                           width="60" height="80">
   <jsp:param name="fontcolor" value="red" />
   <jsp:param name="background" value="black" />
 
   <jsp:fallback>
      Unable to initialize Java Plugin
   </jsp:fallback>
 
</jsp:plugin>

jsp:body 动作

< jsp:element>,< jsp:attribute> 和< jsp:body> 动作定义XML元素。

以下代码显示了如何动态定义XML元素。

<%@page language="java" contentType="text/html"%>
<html xmlns="http://www.w3c.org/1999/xhtml"
      xmlns:jsp="http://java.sun.com/JSP/Page">
<body>
    <jsp:element name="xmlElement">
    <jsp:attribute name="xmlElementAttr">
       Value
    </jsp:attribute>
    <jsp:body>
       Body
    </jsp:body>
    </jsp:element>
</body>
</html>
以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号