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

Struts 1.x 基礎配置入門:web.xml、struts-config.xml、標籤庫與 ActionForm 完整指南

     編輯:關於JSP

Struts 1.x 是經典 MVC 框架,雖已逐漸被 Struts 2 / Spring MVC 取代,但維護舊專案仍需掌握其核心配置。本文系統整理 web.xml、struts-config.xml、標籤庫與 ActionForm 關鍵點。

一、web.xml 核心配置

1. ActionServlet(唯一入口,多執行緒)

<servlet>
  <servlet-name>action</servlet-name>
  <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
  <init-param>
    <param-name>config</param-name>
    <param-value>/WEB-INF/struts-config.xml</param-value>
  </init-param>
  <init-param>
    <param-name>debug</param-name>
    <param-value>0</param-value>
  </init-param>
  <init-param>
    <param-name>detail</param-name>
    <param-value>0</param-value>
  </init-param>
  <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
  <servlet-name>action</servlet-name>
  <url-pattern>*.do</url-pattern>
</servlet-mapping>

2. 歡迎頁面技巧:無法直接映射 *.do,需轉發

<welcome-file-list><welcome-file>welcome.jsp</welcome-file></welcome-file-list>

welcome.jsp 內用 <jsp:forward page="/Home.do"/> 或 Struts 全域轉發 <forward name="welcome" path="/Home.do"/>。

3. 錯誤頁面與標籤庫

<error-page><error-code>404</error-code><location>/common/404.jsp</location></error-page>
<taglib>
  <taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
  <taglib-location>/WEB-INF/struts-html.tld</taglib-location>
</taglib>

二、struts-config.xml 結構(DTD 順序嚴格)

<struts-config>
  <data-sources />           <!-- 資料源,可多組 key 識別 -->
  <form-beans />             <!-- ActionForm 定義 -->
  <global-exceptions />      <!-- 全域例外對應 -->
  <global-forwards />        <!-- 全域轉發邏輯名 -->
  <action-mappings />        <!-- 核心:路徑對應 Action -->
  <controller />             <!-- ActionServlet 參數微調 -->
  <message-resources />      <!-- 國際化資源束 -->
  <plug-in />                <!-- 擴充套件(Validator, Tiles 等) -->
</struts-config>

form-beans 範例(含動態 DynaActionForm)

<form-beans>
  <form-bean name="loginForm" type="com.demo.LoginForm"/>
  <form-bean name="userForm" type="org.apache.struts.action.DynaActionForm">
    <form-property name="username" type="java.lang.String"/>
    <form-property name="age" type="java.lang.Integer" initial="18"/>
  </form-bean>
</form-beans>

global-forwards 邏輯名對應物理路徑

<global-forwards>
  <forward name="login" path="/login.jsp" redirect="false"/>
  <forward name="home"  path="/Home.do" redirect="true"/>
</global-forwards>

JSP 用 <html:link forward="login">,Action 用 mapping.findForward("login")。

action-mappings 核心屬性

<action path="/login"
        type="com.demo.LoginAction"
        name="loginForm"
        scope="request"
        validate="true"
        input="/login.jsp">
  <forward name="success" path="/home.do" redirect="true"/>
  <forward name="failure" path="/login.jsp"/>
</action>

三、Struts HTML 標籤庫速查

標籤對應 HTML備註
html:form<form>自動帶入 Action 路徑
html:text / password / textarea<input type="text/password"> / <textarea>綁定 Form Bean 屬性
html:select / options / optionsCollection<select>下拉選單資料綁定
html:radio / checkbox / multibox<input type="radio/checkbox">多選用 multibox
html:submit / button / reset / cancel<input type="submit/button/reset">cancel 會繞過驗證
html:errors / html:messages--顯示 ActionErrors/ActionMessages
html:link / html:rewrite<a> / URL支援 forward、參數編碼
html:javascript<script>依 Validator 規則產生前端驗證腳本

四、ActionForm 進階觀念

  • 防火牆角色:只暴露需綁定的屬性,避免惡意參數污染(對應 property="*" 風險)。
  • 型別轉換器:在 setter 內處理字串→日期/數字/格式化,或用 Commons BeanUtils 自訂 Converter。
  • 巢狀 Bean:<html:text property="address.zip"/> 可直接存取 form.getAddress().getZip()。
  • 分派模式:同一 Action 處理多操作,用隱藏欄位 dispatch 或 DispatchAction 映射方法。
  • reset():表單回顯前清空/預設值,配合 validate() 做伺服器端驗證。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved