JSP 動作元素

2018-06-26 17:33 更新

JSP教程 - JSP動作元素


JSP動作控制底層servlet引擎的行為。

使用JSP動作,我們可以動態(tài)插入文件,重用JavaBeans組件或?qū)⒂脩艮D(zhuǎn)發(fā)到另一個頁面。

以下代碼是動作元素的語法:

<jsp:action_name attribute="value" />

例子

我們可以使用以下JSP動作元素。

語法 目的
jsp:include 包括文件
jsp:useBean 初始化JavaBean
jsp:setProperty 設(shè)置JavaBean的屬性
jsp:getProperty 從JavaBean獲取屬性
jsp:forward 將請求轉(zhuǎn)發(fā)到另一個頁面
jsp:plugin 為Java插件生成OBJECT或EMBED標(biāo)記
jsp:element 動態(tài)定義XML元素。
jsp:attribute 定義XML元素的屬性。
jsp:body 定義XML元素的主體。
jsp:text 在JSP頁面和文檔中寫入模板文本。

JSP動作中的通用屬性

所有Action元素有兩個常用屬性: id 屬性和 scope 屬性。

Id屬性唯一標(biāo)識Action元素。我們可以使用id來引用JSP頁面中的動作。

Scope屬性標(biāo)識Action元素的生命周期。 scope 屬性有四個可能的值:

  • page
  • request
  • session
  • application

jsp:include 動作

jsp:include動作將文件插入JSP頁面。語法如下所示:

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

include 指令在JSP頁面被翻譯成servlet時包括一個文件,而jsp:include動作在請求頁面時插入文件。

下表列出了與包含動作相關(guān)聯(lián)的屬性。

屬性 描述
page 要包括的頁面的相對URL。
flush boolean屬性確定包含的資源在包含之前是否應(yīng)使其緩沖區(qū)刷新。

以下代碼顯示如何使用include動作。

這里是data.jsp。

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

這里是main.jsp文件的內(nèi)容:

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

jsp:useBean 動作

useBean 動作首先使用 id scope 屬性搜索現(xiàn)有對象。如果沒有找到對象,它將創(chuàng)建指定的對象。

加載bean的最簡單的方法如下:

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

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

一旦bean被加載,我們可以使用 jsp:setProperty jsp:getProperty 動作來修改和檢索bean屬性。

下表列出了與useBean動作相關(guān)聯(lián)的屬性。

描述 描述
class 定義bean的完整包名稱。
type 指定變量的類型。
beanName 命名加載的bean。

jsp:setProperty 動作

setProperty 動作設(shè)置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>

在上面的代碼中,只有在實例化新對象時才執(zhí)行jsp:setProperty,而不是如果找到現(xiàn)有對象。

下表列出了與 setProperty 動作相關(guān)聯(lián)的屬性。

描述 描述
name 將設(shè)置其屬性的bean的名稱。
property 要設(shè)置的屬性。 值“*"表示名稱與bean屬性名稱匹配的所有請求參數(shù)都將傳遞到相應(yīng)的setter方法。
value 要設(shè)置為屬性的值。
param param屬性是請求參數(shù)的名稱。

jsp:getProperty 動作

getProperty 動作檢索給定屬性的值并將其轉(zhuǎn)換為字符串,然后將其插入到輸出中。

getProperty動作有兩個屬性,如下所示:

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

以下是與getProperty動作相關(guān)聯(lián)的必需屬性的列表。

描述 描述
name 必須先前已定義的Bean的名稱。
property Bean屬性的名稱。

userBean示例,set/get屬性

創(chuàng)建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復(fù)制到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 動作將請求轉(zhuǎn)發(fā)到另一個靜態(tài)頁面,或另一個JSP頁面或Java Servlet。

此動作的簡單語法如下:

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

下表列出了 forward 動作所需的屬性。

屬性 描述
page 其他資源的相對網(wǎng)址。

以下代碼顯示如何使用 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>標(biāo)簽中的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元素。

以下代碼顯示了如何動態(tài)定義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>
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號