Struts是一個(gè)非常流行并被許多企業(yè)級(jí)應(yīng)用程序采用的WEB框架,Struts2在Struts1.x的基礎(chǔ)上進(jìn)行了大量改造,和WebWork合二為一,引進(jìn)了更多的新觀念、新思想和新技術(shù),使之更符合J2EE應(yīng)用程序開(kāi)發(fā)的需要。

          學(xué)一門(mén)新技術(shù)時(shí),第一個(gè)應(yīng)用程序非常重要,本文簡(jiǎn)單介紹了下struts2寫(xiě)了一個(gè)hello world程序,并有部分講解希望能夠給struts愛(ài)好者提供一點(diǎn)點(diǎn)幫助

          struts2與struts1.x有很大差異,struts2的配置文件為struts.xml相當(dāng)于struts1中的struts-config.xml文件 其次放的位置也不同 struts.xml放在項(xiàng)目的src下面使用myeclipse發(fā)布的時(shí)候會(huì)自動(dòng)復(fù)制到classes下面
          struts.xml代碼

          <!DOCTYPE struts PUBLIC
          "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
          "http://struts.apache.org/dtds/struts-2.0.dtd">
          <struts>
              
          <package name="com.struts2.demo" extends="struts-default">
                  
          <action name="Hello" class="com.struts2.demo.Hello">
                      
          <result>/index.jsp</result>
                  
          </action>
              
          <!-- Add your actions here -->
              
          </package>
          </struts>

          將Struts2所帶的過(guò)濾器org.apache.struts2.dispatcher.FilterDispatcher配置到工程的web.xml文件中,默認(rèn)情況下,該過(guò)濾器攔截請(qǐng)求字符串中以.action結(jié)尾的請(qǐng)求,并將該請(qǐng)求委托給指定的Action進(jìn)行處理。最直觀的表現(xiàn)就是調(diào)用Action的execute()方法。代碼如下
          <filter> 
                
          <filter-name>struts2</filter-name> 
                
          <filter-class> 
                  org.apache.struts2.dispatcher.FilterDispatcher 
                
          </filter-class> 
            
          </filter> 
            
          <filter-mapping> 
                
          <filter-name>struts2</filter-name> 
                
          <url-pattern>/*</url-pattern> 
            </filter-mapping> 
          我們的java文件 相當(dāng)于使用struts1的action 但這里是繼承了ActionSupport 是webwork中的類(lèi)
          package com.struts2.demo;

          import com.opensymphony.xwork2.ActionSupport;

          public class Hello extends ActionSupport{

              
              
          private String message;

              
          public void setMessage(String message){
                  
          this.message = message;
              }
              
          public String getMessage(){
                  
          return message;
              }
              
              
          public String execute() throws Exception{
                  setMessage(
          "Hello my first Struts2 demo");
                  
          return SUCCESS;
              }

              
          }

          注:ActionSupport是Struts2提供的類(lèi),功能類(lèi)似于Struts1.x中的Action類(lèi),該類(lèi)封裝了幾個(gè)有用的功能,比如:
          getText():從資源文件中獲取國(guó)際化消息。
          addFieldError():驗(yàn)證輸入未通過(guò)時(shí)添加錯(cuò)誤消息,支持國(guó)際化。
          execute():該方法一般會(huì)被重寫(xiě),當(dāng)客戶(hù)端向Action發(fā)送請(qǐng)求時(shí),會(huì)調(diào)用此方法。

          標(biāo)簽名稱(chēng) 說(shuō)明
          include 包含其他xml文件,在示例中,這意味著struts.xml可以訪問(wèn)定義在struts-default.xml文件中的組件。

          該元素可以使得Struts2定義多個(gè)配置文件,“分而治之”。

          要注意的是,任何一個(gè)struts2配置文件都應(yīng)該和struts.xml有相同的格式,包括doctype,并且可以放在類(lèi)路徑下的任何地方。
          package 為Action或截?cái)r器分組。

          name:名稱(chēng),必填項(xiàng),名稱(chēng)自定義,沒(méi)特別要求。方便別的package引用。
          extends:package能繼承其他的package,即通過(guò)該屬性實(shí)現(xiàn),值為另一個(gè)package的name。

          在示例中,extends =”struts-default”是從struts-default.xml中繼承的。
          action 定義Action,name屬性為訪問(wèn)時(shí)用到的名稱(chēng),class屬性是Action的類(lèi)名。
          result 根據(jù)Action的返回值定義頁(yè)面導(dǎo)航。

          Action的預(yù)定義的返回值有:
          String SUCCESS = "success";
          String NONE    = "none";
          String ERROR   = "error";
          String INPUT   = "input";
          String LOGIN   = "login";

          比如,當(dāng)Action返回SUCCESS時(shí)希望轉(zhuǎn)到index.jsp頁(yè)面,則可以這樣寫(xiě):
          <result name=”success”>index.jsp</result>
              其中,name的缺省為success。

          返回的頁(yè)面代碼
          <%@ taglib prefix="s" uri="/struts-tags" %>

          <html>
              
          <head>
                  
          <title>Hello World!</title>
              
          </head>
              
          <body>
                  
          <h2><s:property value="message" /></h2>
              
          </body>
          </html>


          最后訪問(wèn)http://127.0.0.1:8081/Hello.action 可能和你建的項(xiàng)目路徑不同

          這樣就完成了一個(gè)hello world程序

          還在學(xué)習(xí)中 如果有好的資料希望可以分享一下 最后還是希望可以提出寶貴意見(jiàn)
          posted on 2007-12-11 12:34 LifeNote 閱讀(1728) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): Java 、struts
           
          主站蜘蛛池模板: 永昌县| 海伦市| 沁水县| 莎车县| 探索| 章丘市| 桑日县| 沽源县| 松阳县| 桐柏县| 元阳县| 西和县| 高雄市| 尉犁县| 乌恰县| 维西| 古浪县| 广南县| 龙川县| 涡阳县| 大连市| 酒泉市| 定安县| 潜山县| 石柱| 灵武市| 新乡县| 文安县| 华蓥市| 巫山县| 奎屯市| 南漳县| 贵州省| 洮南市| 永城市| 元阳县| 乌兰县| 蒙城县| 电白县| 咸丰县| 永修县|