<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    鐵手劍譜

    上善若水
    數據加載中……
    Struts秘籍之起式:第1.3式:遷移至Struts 1.1

    第1.3式. 從Struts 1.0遷移至Struts 1.1

    問題

    你需要將一個基于Struts 1.0的應用遷移到Struts 1.1.

    動作分解

    使用Struts1.1中對應的文件替換Struts 1.0 JAR 文件、標簽庫描述符(TLD) 文件、以及XML DTD 文件。如果你有使用Struts標簽庫絕對URI的JSP 頁面,你需要修改它們。使用新的標簽庫重新編譯和構建你的應用,解決兼容性錯誤。

    最后,你需要將原來使用不贊成API的代碼修改為使用新的Struts 1.1 API。

    變化

    Struts 1.1 在Struts 1.0基礎上作了較大變化,從功能上講,基于 Struts 1.0 的應用可以通過使用Struts1.1中的對應文件來替換Struts 1.0 的JAR 和TLD文件來進行遷移,這沒什么大的困難。你需要修改所使用的標簽庫的URI,因為它們在Struta1.1中已經改變;這一般來說需要修改你的 web.xml部署描述符。如果你在JSP中使用絕對URI,這些值也需要修改。Table 1-3列出了標簽庫URI的改變。

    Table 1-3. Struts標簽庫URI

    Struts 1.0.2 Taglib URI

    Struts 1.1 Taglib URI

    http://jakarta.apache.org/struts/tags-bean-1.0.2

    http://jakarta.apache.org/struts/tags-bean

    http://jakarta.apache.org/struts/tags-html-1.0.2

    http://jakarta.apache.org/struts/tags-html

    http://jakarta.apache.org/struts/tags-logic-1.0.2

    http://jakarta.apache.org/struts/tags-logic

    http://jakarta.apache.org/struts/tags-template-1.0.2

    http://jakarta.apache.org/struts/tags-template

    Not Available with Struts 1.0.2

    http://jakarta.apache.org/struts/tags-tiles

    Not Available with Struts 1.0.2

    http://jakarta.apache.org/struts/tags-nested

     

    Struts1.1中最明顯的改變是Struts 的ActionServlet (org.apache.action.ActionServlet) 和Action類(org.apache.struts.Action)。Struts 1.1 也引入了請求處理器RequestProcessor (org.apache.struts.action.RequestProcessor)的概念。ActionServlet將請求處理委托給請求處理器。在Struts 1.1中,你不再需要一定要擴展ActionServlet來進行定制化;相反,你應該子類化RequestProcessor。如果一個基于 Struts 1.0的應用沒有擴展ActionServlet,那么不需要做任何修改就能使用RequestProcessor。如果ActionServlet被子類化了,你卻應該擴展RequestProcessor。

    另一個主要的增強是Struts的Action。Struts 1.1 引入了一個新方法execute( ), 即其子類應該實現這個方法,而不是原來的perform()方法。Example 1-1展示了一個實現perform()方法的簡單Action例子。

    Example 1-1. Struts 1.0 Action

     

    package org.apache.struts.webapp.example;

    import java.io.IOException;
    import javax.servlet.
    *;
    import javax.servlet.http.
    *;
    import org.apache.struts.action.
    *;

    public final class ExampleAction extends Action {
        
    public ActionForward perform(ActionMapping mapping,
                     ActionForm form,
                     HttpServletRequest request,
                     HttpServletResponse response)
                throws IOException, ServletException 
    {

            
    try {
                ExampleService service 
    = new ExampleService( );
                Service.doService( );
            }

            
    catch (ServiceException ex) {
                
    throw new ServletException( ex );
            }

            
    return (mapping.findForward("success"));
        }

    }

     

    Example 1-2則是使用Struts1.1的同一個例子。

    Example 1-2. Struts 1.1 Action

     

    package org.apache.struts.webapp.example;

    import java.io.IOException;
    import javax.servlet.
    *;
    import javax.servlet.http.
    *;
    import org.apache.struts.action.
    *;

    public final class ExampleAction extends Action {
        
    public ActionForward execute (ActionMapping mapping,
                     ActionForm form,
                     HttpServletRequest request,
                     HttpServletResponse response)
                throws Exception 
    {

                ExampleService service 
    = new ExampleService( );
                Service.doService( );

                
    return (mapping.findForward("success"));
        }

    }

     

    如你所見,基于Struts 1.1的Action, 例外處理不再需要在方法中執行。Struts 1.1 現在支持將例外處理作為框架的一部分。我們將在第9.1式練習這個招數。

    你并不是一定要修改你的Actions 來使用execute( )方法,因為Struts 1.1 仍舊支持perform( )方法;但是該方法已經不贊成使用了。

    ]

    1

    如果你直接從Struts 1.0 遷移至Struts 1.2, Struts 1.1 中的不贊成因素,比如perform( )方法,已經從Struts 1.2 API中刪除了。

     

    雖然這個方法將繼續發揮作用,但是我們還是建議你盡可能的將你的代碼修改來使用execute( )方法。這樣可以減少進一步升級到Struts 1.2的難度和工作。更明顯的是,這可以使你得到Struts 1.1 的例外處理能力的優勢。

    參見

    第9.1 式Struts 1.1的例外處理。

     

    posted on 2005-04-27 09:55 鐵手 閱讀(1664) 評論(2)  編輯  收藏 所屬分類: JavaStruts系列

    評論

    # re: Struts秘籍之起式:第1.3式:遷移至Struts 1.1 2005-05-01 18:30 wri1982

    不錯!!!
      回復  更多評論    

    # Struts 秘籍(CookBook)[TrackBack] 2005-11-12 18:29 阿泠

    本系列源改編自O'Reily的Strus Cookbook
    [引用提示]阿泠引用了該文章, 地址: http://blog.donews.com/inclear/archive/2005/11/12/624363.aspx
      回復  更多評論    
    主站蜘蛛池模板: 亚洲av无码专区在线观看下载| 无码欧精品亚洲日韩一区| 国产成+人+综合+亚洲专| 1024免费福利永久观看网站| 亚洲欧洲国产综合| 好吊妞788免费视频播放| 亚洲情A成黄在线观看动漫软件| 欧美男同gv免费网站观看| 亚洲黄页网在线观看| 老司机永久免费网站在线观看| 国产成人综合亚洲绿色| 亚洲中文字幕无码久久综合网| 国产成人无码区免费网站| 亚洲精品不卡视频| 午夜两性色视频免费网站| 二级毛片免费观看全程| 国产亚洲精AA在线观看SEE | 久久99精品免费一区二区| 亚洲第一精品在线视频| 和日本免费不卡在线v| 亚洲Av无码国产一区二区| 中文字幕一精品亚洲无线一区| 亚洲视频在线免费观看| 免费A级毛片在线播放| 亚洲国产精品线观看不卡 | 亚洲Av无码国产情品久久 | 91情侣在线精品国产免费| 久久精品熟女亚洲av麻豆| 亚洲精品成人片在线播放| 国产黄色免费网站| 免费一级全黄少妇性色生活片 | 亚洲欧美在线x视频| 亚洲欧洲成人精品香蕉网| 99热在线精品免费全部my| 一本大道一卡二大卡三卡免费| 亚洲高清中文字幕| 免费人成网站在线高清| 最近中文字幕大全中文字幕免费| 久久亚洲精品无码gv| 亚洲国产综合精品中文第一区| 国产大片线上免费看|