Gay Bird

          登高者必自卑,行遠者必自邇,在這個世界上,重要的不是你正站在那里,而是你正朝什么方向移動......

          struts2筆記 - helloworld

          可以從Apache Struts 的官方站點(http://struts.apache.org)下載發(fā)布版本,當(dāng)前最新的版本是2.0.9。下載的版本中包含struts2-core.jar和相關(guān)的依賴類庫文件,示例程序,HTML格式的文檔,和全部的源代碼。

          1,導(dǎo)入struts2需要的jar文件
          commons-logging-1.0.4.jar              日志記錄接口,可以配置選擇使用jdk1.4 log 或者 log4j
          freemarker-2.3.8.jar                        所有標(biāo)簽的模板都是用Freemarker編寫
          ognl-2.6.11.jar                               Objet Graph NavigationLanguage,Struts2表達式的基礎(chǔ)。
          struts2-core-2.0.9.jar                      struts2框架類庫
          xwork-2.0.4.jar                               xwork類庫,struts2的基礎(chǔ)

          2,配置web.xml文件
          <?xml version="1.0"?>
          <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
          "http://java.sun.com/dtd/web-app_2_3.dtd"
          >

          <web-app>
            
          <display-name>My Application</display-name>
            
          <filter>
              
          <!--配置struts過濾器-->
              
          <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>
          </web-app>

          3,配置struts.xml文件
          必須要把該文件建立在編譯好的WEB-INF下的classes目下
          在myeclipse可以把它新建到src下。src下的所有資源文件等都會在保存時自動編譯到classes目錄
          <!DOCTYPE struts PUBLIC
              "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
              "http://struts.apache.org/dtds/struts-2.0.dtd"
          >

          <struts>
              
          <!-- 配置默認(rèn)的包. -->
              
          <package name="default" extends="struts-default">
                   
              
          </package>
          </struts>


          3,建立頁面文件
          Struts2提交一個請求的時候,輸入的數(shù)據(jù)并沒有直接送給下一個頁面,而是送給了一個你提供的Java類。這種Java類被稱為Action。當(dāng) Action執(zhí)行之后,Struts2會選擇一個結(jié)果作為返回,通常情況下是一個JSP頁面,但是也可以是PDF文件,Excel表單或者Java Applet窗口。
          這時需要做的是
        1. 創(chuàng)建一個JSP頁面來顯示歡迎消息
        2. 創(chuàng)建一個Action類來生成歡迎消息
        3. 在struts.xml中創(chuàng)建一個配置項來關(guān)聯(lián)上述的Action和JSP頁面

        4. 建立jsp頁面
          第一行引入了struts2的標(biāo)簽庫,在之后的頁面中可以使用s標(biāo)簽了。這行在幾乎所有的struts2應(yīng)用的jsp頁面中都會出現(xiàn)

          <%@ taglib prefix="s" uri="/struts-tags" %>
          <html>
              
          <head>
                  
          <title>Hello World!</title>
              
          </head>
              
          <body>
                  
          <s:form action="hello">
                   
          <s:textfield name="name" label="name" />
                 
          </s:form>
              
          </body>
          </html>

          創(chuàng)建action類
          execute方法用來處理業(yè)務(wù)操作
          import com.opensymphony.xwork2.ActionSupport;
          public class HelloWorld extends ActionSupport {

              
          private String name;
              
          public String execute() throws Exception {
                 
          return SUCCESS;
              }


              
          public void setName(String name){
                  
          this.name= name;
              }


              
          public String getName() {
                  
          return name;
              }

          }

          配置struts.xml關(guān)聯(lián)jsp和action
          <!DOCTYPE struts PUBLIC    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"    "http://struts.apache.org/dtds/struts-2.0.dtd">
          <struts>
              
          <package name="tutorial" extends="struts-default">        
                  
          <action name="HelloWorld" class="tutorial.HelloWorld">         
                      
          <result>/HelloWorld.jsp</result>        
                  
          </action>       
               
          </package>
          </struts>

          工作原理
          當(dāng)瀏覽器發(fā)送請求 http://localhost:8080/tutorial/HelloWorld.action 的時候,在服務(wù)器上發(fā)生了如下事件:

          1. 服務(wù)器接收到對HelloWorld.action的請求,根據(jù)web.xml文件中的配置,所有以.action結(jié)尾的請求都會被 org.apache.struts2.dispatcher.FilterDispatcher過濾,所以這個請求被發(fā)送給 FilterDispatcher,F(xiàn)ilterDispatcher是Struts 2 框架的入口點。
          2. Struts 2 框架查找HelloWorld.action對應(yīng)的Java 類,發(fā)現(xiàn)是HelloWorld.java,之后Struts 2 框架實例化了一個HelloWorld類,并且調(diào)用了這個類的execute方法。
          3. execute方法設(shè)置了message的內(nèi)容,并且返回SUCCESS??蚣軈s定返回值SUCCESS,并且找到對應(yīng)的內(nèi)容HelloWorld.jsp,并且通知服務(wù)器將HelloWorld.jsp作為返回內(nèi)容。
          4. 在HelloWorld.jsp被處理的過程中,<s:property value="message" />標(biāo)簽的內(nèi)容被替換為HelloWorld 的getMessage方法調(diào)用的結(jié)果
          5. 根據(jù)HelloWorld.jsp內(nèi)容生成的HTML內(nèi)容被發(fā)回到請求的瀏覽器。
          結(jié)果類型(Result Type)
          Action 處理完成之后,會選擇一個結(jié)果返回給客戶,這個結(jié)果可能是簡單的HTML頁面,JSP頁面,F(xiàn)reeMarker模板,Velocity模板,或者是一個 PDF文旦個或者是更復(fù)雜的JasperReports。一個Action可能有幾個可選的結(jié)果類型,為了決定到底使用那個結(jié)果類型,Action類的 execute方法必須返回一個標(biāo)記結(jié)果類型的字符串。
          struts.xml
          <action name="Logon" class="tutorial.Logon">
            <result type="redirect-action">Menu</result>
            <result name="input">/tutorial/Logon.jsp</result>
          </action>
          如果我們輸入了用戶名和密碼,Logon Action會返回“success”。"success"是默認(rèn)的返回結(jié)果,這個時候會使用Menu action作為結(jié)果。
          如果我們什么也不輸入,Logon Action 會返回"input", Struts 2會使用Logon.jsp 作為結(jié)果返回

          posted on 2008-10-08 14:31 Sky Yi 閱讀(488) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 巴青县| 敖汉旗| 金坛市| 东源县| 阳山县| 沙湾县| 兴业县| 荥经县| 长顺县| 镇安县| 雅安市| 毕节市| 开远市| 宜宾市| 沅江市| 海盐县| 鹰潭市| 佛学| 嘉黎县| 上高县| 大同市| 安康市| 雷州市| 高尔夫| 南溪县| 扎赉特旗| 塔城市| 休宁县| 梧州市| 彩票| 商都县| 蓬安县| 剑川县| 法库县| 临沂市| 淮滨县| 广汉市| 普安县| 溆浦县| 通城县| 沁阳市|