首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> JSP 程式設計 >> 關於JSP

JSP 六大核心 Action 動作標籤完整實戰指南

     編輯:關於JSP

JSP Action(動作)在請求處理階段執行,提供動態包含、JavaBean 操作、頁面轉發、外掛生成等運行時行為。六大標準 Action 涵蓋了 MVC 視圖層最常見的需求。

六大 Action 對照表

Action用途關鍵屬性
jsp:include請求期動態包含檔案page, flush
jsp:useBean尋找或實例化 JavaBeanid, scope, class, type, beanName
jsp:setProperty設定 Bean 屬性值name, property, param, value
jsp:getProperty輸出 Bean 屬性值name, property
jsp:forward請求轉發page
jsp:plugin生成 Applet 瀏覽器標籤type, code, codebase, ...

jsp:include vs include 指令

  • include 指令(<%@ include file="..." %>):編譯期靜態合併,包含檔可含 JSP 代碼,效能高但靈活性低。
  • jsp:include:請求期動態包含,被包含頁獨立編譯,不可設 HTTP 頭,但支援動態路徑、參數傳遞,適合組件化佈局。

動態新聞組件範例

<ol>
  <li><jsp:include page="news/Item1.html" flush="true"/></li>
  <li><jsp:include page="news/Item2.html" flush="true"/></li>
  <li><jsp:include page="news/Item3.html" flush="true"/></li>
  <li><jsp:include page="news/Item4.html" flush="true"/></li>
</ol>

修改四個片段即可更新首頁,無須動主頁代碼。

JavaBean 完整生命週期範例

SimpleBean.java

package hall;
public class SimpleBean {
  private String message = "No message specified";
  public String getMessage() { return message; }
  public void setMessage(String message) { this.message = message; }
}

BeanTest.jsp

<jsp:useBean id="test" class="hall.SimpleBean" />
<jsp:setProperty name="test" property="message" value="Hello WWW" />
<h1>Message: <i><jsp:getProperty name="test" property="message" /></i></h1>

輸出:Message: Hello WWW

useBean 進階屬性解析

  • scope:page(預設)、request、session、application,決定 Bean 可見範圍與生命週期。
  • class vs type vs beanName:
    • class:具體實現類,必須有無參建構子。
    • type:介面/父類類型,配合 class 或 beanName 使用,編譯期類型檢查。
    • beanName:Beans.instantiate() 可載入序列化 Bean 或類名,支援動態表達式。
  • 類路徑陷阱:Bean 類必須放在容器共享類路徑(如 WEB-INF/lib 或伺服器 lib),而非 WebApp 專用 WEB-INF/classes 熱部署目錄,否則類載入器隔離導致 ClassNotFoundException。

setProperty 進階用法

<!-- 自動映射所有同名請求參數 -->
<jsp:setProperty name="bean" property="*" />
<!-- 映射指定參數到不同名屬性 -->
<jsp:setProperty name="bean" property="userName" param="uname" />
<!-- 直接設定常值 -->
<jsp:setProperty name="bean" property="status" value="active" />
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved