Struts 開發簡單例子[action formbean]

來源:互聯網
上載者:User
 

Struts 開發簡單例子

想要成功運行一個基於struts的web例子,需要對struts有一個基本的瞭解,掌握struts的MVC模型是如何封裝如何進行控制的轉交等。下面就從代碼尋找答案。

1,首先在web.xml中進行servlet的定義。

  <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>2</param-value>

    </init-param>

    <init-param>

      <param-name>detail</param-name>

      <param-value>2</param-value>

    </init-param>

    <load-on-startup>2</load-on-startup>

  </servlet>

以上代碼,定義一個ActionServlet,用來捕獲相應的動作。即使用者端的串連請求,在此處被ActionServlet捕獲。根據下面的<servlet-mapping>是將捕獲到請求,根據尾碼交給相應的servlet(action)。隨後就會根據struts-config.xml檔案中的配置,進行處理。

  <servlet-mapping>

    <servlet-name>action</servlet-name>

    <url-pattern>*.shtml</url-pattern>

  </servlet-mapping>

2,

首先聲明要用到的formbean,並指定完整包路徑

 <form-beans>

    <form-bean name="testBean" type="strutstest.action.TestBean"/>

  </form-beans>

<action-mappings>中指明了所有action所映射到的formbean類,讓formbean進行處理,同時還指定了返回結果之後的跳轉路徑。

<action-mappings>

<action name="testBean" 對應的formbean名

 path="/test/saveUser" 訪問路徑,即捕獲到的請求

 type="org.apache.struts.beanaction.BeanAction"> Action的類型

      <forward name="success" path="/index.jsp" /> 返回成功時的跳轉路徑

    </action>

<action name="testBean" 

parameter="*"  表示無條件跳轉,優先順序最高,不交付給相應的formbean進行處理。*表示無條件跳轉,如果為相應的方法名,則表示指定方法進行處理。

path="/test/index" type="org.apache.struts.beanaction.BeanAction"

 validate="false"> 表示不需要驗證處理,否則交付驗證

      <forward name="success" path="/web/index.html" />

    </action>

    <action name="testBean" path="/test/updateUser" type="org.apache.struts.beanaction.BeanAction"> 

      <forward name="success" path="/web/uccess.html" />

    </action>

    <action  name="testBean" path="/test/getUser" type="org.apache.struts.beanaction.BeanAction" >

         <forward name="success" path="/web/success.html" />

    </action>

  </action-mappings> 

3,下面看看整個網頁代碼的編寫

<%@ page contentType="text/html" %>

<%@ taglib uri="struts-logic" prefix="logic" %> 

<%@ taglib uri="struts-bean" prefix="bean" %>

<%@ taglib uri="struts-html" prefix="html" %>標籤庫的聲明,如下面的<html:link>標籤

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head></head>

<body>

<html:link page="/test/saveUser.do"> 指定串連的url。do為web.xml中聲明的action的捕獲尾碼

saveUser

</html:link>

<html:link page="/test/getUser.do?id=22">帶參數的url

getUser

</html:link>

<html:link page="/test/updateUser.do">

UpdateUser

</html:link>

</body>

</html>

4,formbean檔案

package  strutstest.action;

 // 繼承BaseBean 

 import  org.apache.struts.beanaction.BaseBean; 

 public   class  TestBean  extends  BaseBean   {

    

     public   static   final  String SUCCESS  =   "success" ; //處理之後的傳回值

     public   static   final  String FAILURE  =   "failure" ;

     public  TestBean()   { } 

     private  String id; //formbean對象所涉及到的資料

     private   int  age;

     private  String name;

     private  String address;

     // getter setter 省略,此例子簡單,沒有用到該bean來傳遞資料

 // 定義幾個業務方法 

      public  String saveUser()

        {

          System.out.print( " 添加使用者.. " ); 

            return  SUCCESS;

      } 

       public  String updateUser()

        {

          System.out.print( " update user.. " );

           return  SUCCESS;

      } 

       public  String getUser()

        {

           if (id == null )

            { 

             System.out.print( " 沒有此使用者 " );

              return FAILURE;  // 導向失敗 

           }       

          System.out.print( " 使用者id= " + id);

           return  SUCCESS;

      } 

 }

最後,程式就可以運行了。只需要簡單是四個部分,例子就能跑通。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.