JAVA及相關技術學習

          Servlet

           

          Action類的工作機制

          Action類的工作機制
          所有的Action類是org.apache.struts.action.Action的子類。Action子類應該覆蓋父類的execute方法。當ActionForm Bean被創建,并且表單驗證順利通過后,Struts框架就會調用Action類的execute()方法。execute()方法如下定義:
          public ActionForward execute(ActionMapping mapping,
                                       ActionForm form,
                                       HttpServletRequest request,
                                       HttpServletResponse response)throws IOException,ServletException
          execute()方法包含以下參數:
          ActionMapping:包含了這個Action的配置信息,和struts-config.xml文件中的<action>元素對應。
          ActionForm:包含了用戶的表單數據,當Struts框架調用execute()方法時,ActionForm中的數據已經通過了表單驗證。
          HttpServletRequest:當前的HTTP請求對象。
          HttpServletResponse:當前的HTTP響應對象。

          訪問封裝在MessageResources中的本地化文本

          Action類的execute()方法首先獲得MessageResources對象:
          MessageResources messages=getResources(request);
          在Action類中定義了getResources(HttpServletRequest request)方法,該方法返回當前默認的MessageResources對象,它封裝了Resource Bundle中的文本內容。接下來Action類就可以通過MessageResources對象來訪問文本內容。例如,如果要讀取消息KEY為“hello.jsp.title”對應的文本內容,可以調用MessageResources類的getMessage(String key)方法:
          String title=messages.getMessage("hello.jsp.title");

          業務邏輯驗證
          ActionMessages errors=new ActionMessages();
          String userName=(String)((HelloForm)form).getUserName();
          String badUserName="Monster";

          if(userName.equalsIgnoreCase(badUserName))
          {
             errors.add("username",new ActionMessage("hello.dont.talk.to.monster",badUserName));
          saveErrors(request,errors);
          return(new ActionForward(mapping.getInput()));
          }
          如果用戶輸入的姓名“Monster”,將創建包含錯誤信息的ActionMessage對象,ActionMessage對象被保存島ActionMessages對象中。接下來調用在Action基類中定義的saveErrors()方法,它負責把ActionMessages對象保存島request范圍內。最后返回ActionForward對象,Struts框架會根據ActionForward對象包含的轉發信息把請求轉發島恰當的視圖組件,視圖組件通過<html:errors>標簽把request范圍內的ActionMessage對象中包含的錯誤消息顯示出來,提示用戶修改錯誤。

          posted on 2009-03-11 14:30 亂せ英豪 閱讀(695) 評論(0)  編輯  收藏


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


          網站導航:
           

          導航

          統計

          常用鏈接

          留言簿(1)

          隨筆檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 隆林| 博兴县| 广饶县| 正宁县| 平定县| 张家界市| 牟定县| 平度市| 湘西| 钟祥市| 盖州市| 龙川县| 科尔| 南平市| 威宁| 溧水县| 治县。| 安乡县| 惠水县| 元谋县| 栾川县| 江北区| 南木林县| 南雄市| 花垣县| 垫江县| 高州市| 苍梧县| 贵溪市| 新化县| 阳信县| 青海省| 兴义市| 蛟河市| 台南市| 石门县| 盐源县| 临颍县| 宝兴县| 固原市| 宜阳县|