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 亂せ英豪 閱讀(694) 評論(0)  編輯  收藏


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


          網站導航:
           

          導航

          統計

          常用鏈接

          留言簿(1)

          隨筆檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 井冈山市| 政和县| 锡林浩特市| 南乐县| 漳州市| 崇仁县| 宣化县| 郓城县| 雷州市| 宁晋县| 漳州市| 塔城市| 克什克腾旗| 麻城市| 正安县| 英山县| 洛阳市| 余姚市| 淳安县| 和龙市| 安国市| 巴马| 鹤山市| 上高县| 米泉市| 黎平县| 黑河市| 桑日县| 邵武市| 合作市| 安溪县| 仁布县| 广宗县| 定南县| 亚东县| 西乌珠穆沁旗| 田东县| 屯昌县| 同心县| 吴堡县| 榕江县|