<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
      回復  更多評論    
    主站蜘蛛池模板: 24小时日本电影免费看| 中文字幕高清免费不卡视频| 免费在线视频你懂的| 久久亚洲国产精品| 日本免费电影一区二区| 亚洲av无码一区二区三区乱子伦| 国产一级黄片儿免费看| 国产∨亚洲V天堂无码久久久| 精品国产麻豆免费人成网站| 久久91亚洲人成电影网站| a级毛片无码免费真人久久| 亚洲国产精品婷婷久久| 国产又大又粗又长免费视频 | 丝袜足液精子免费视频| 最新精品亚洲成a人在线观看| 97国免费在线视频| 久久久久亚洲AV无码网站| 曰批全过程免费视频网址| 亚洲综合无码一区二区痴汉| 午夜网站免费版在线观看| 色欲色欲天天天www亚洲伊| 亚洲精品网站在线观看不卡无广告| 久久国产乱子伦精品免费午夜| 国产v亚洲v天堂无码网站| 四虎免费影院ww4164h| 亚洲色无码国产精品网站可下载| 国产一级淫片免费播放| 91成人免费福利网站在线| 亚洲高清免费在线观看| 四虎成人免费影院网址| 亚欧乱色国产精品免费视频| 亚洲人成电影亚洲人成9999网| 在线jyzzjyzz免费视频| 国产免费一区二区三区免费视频 | 亚洲成AV人影片在线观看| 亚洲精品NV久久久久久久久久| 99精品视频免费在线观看| 亚洲免费综合色在线视频| 中文字幕亚洲图片| 免费做爰猛烈吃奶摸视频在线观看 | 亚洲六月丁香六月婷婷蜜芽|