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

          學(xué)一門新技術(shù)時(shí),第一個(gè)應(yīng)用程序非常重要,本文簡單介紹了下struts2寫了一個(gè)hello world程序,并有部分講解希望能夠給struts愛好者提供一點(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所帶的過濾器org.apache.struts2.dispatcher.FilterDispatcher配置到工程的web.xml文件中,默認(rèn)情況下,該過濾器攔截請(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中的類
          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提供的類,功能類似于Struts1.x中的Action類,該類封裝了幾個(gè)有用的功能,比如:
          getText():從資源文件中獲取國際化消息。
          addFieldError():驗(yàn)證輸入未通過時(shí)添加錯(cuò)誤消息,支持國際化。
          execute():該方法一般會(huì)被重寫,當(dāng)客戶端向Action發(fā)送請(qǐng)求時(shí),會(huì)調(diào)用此方法。

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

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

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

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

          在示例中,extends =”struts-default”是從struts-default.xml中繼承的。
          action 定義Action,name屬性為訪問時(shí)用到的名稱,class屬性是Action的類名。
          result 根據(jù)Action的返回值定義頁面導(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頁面,則可以這樣寫:
          <result name=”success”>index.jsp</result>
              其中,name的缺省為success。

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

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


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

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

          還在學(xué)習(xí)中 如果有好的資料希望可以分享一下 最后還是希望可以提出寶貴意見
          posted on 2007-12-11 12:34 LifeNote 閱讀(1733) 評(píng)論(0)  編輯  收藏 所屬分類: Javastruts
           
          主站蜘蛛池模板: 黔东| 女性| 景谷| 胶州市| 鹤峰县| 临安市| 保康县| 昆明市| 西宁市| 衡水市| 大城县| 吉木萨尔县| 肥东县| 南乐县| 获嘉县| 辰溪县| 大田县| 六安市| 蓬莱市| 禄劝| 革吉县| 辉县市| 通州区| 新兴县| 靖江市| 香格里拉县| 榆社县| 若尔盖县| 苏尼特右旗| 长武县| 永清县| 永福县| 甘谷县| 金乡县| 邯郸县| 苏尼特左旗| 进贤县| 淮滨县| 济南市| 上虞市| 丹阳市|