建立第一個struts項目,RequestProcessor類,PlugIn,error(關於跳轉等問題)

 

Struts練習

1.主要內容:
   1.在項目中如何用struts
   2.重寫RequestProcessor類的processPreprocess(rq,res)方法
   3.如何實現插件PlugIn
   4.讀屬性文件//在MyPlugIn裏用到
   5.錯誤信息

   6.RequestProcessor類和plugIn   示例項目struts02
     錯誤信息   示例項目struts_error

 

2.詳細實現(RequestProcessor類和plugIn示例在struts02下)

a.

  b. struts實現登錄
      1.在src加入service包(裏面加入1個類(LoginService),實現登錄驗證)

    2.在action包下LoginAction內

    3.以上就完成了,現在部署,並在頁面上輸入路徑訪問  http://localhost:8080/struts02/login.jsp

 

c. 加MyRequestProcessor類(在action包下加,並繼承RequestProcessor類)
    1.在此類中重寫processPreprocess(rq,res)方法

     2.在struts-config裏 <controller processorClass="action.MyRequestProcessor"></controller>

 

d.PlugIn的練習
    1.新建一類MyPlugIn(在action包下,實現PlugIn接口) 寫一個屬性,和在init方法裏,把data放入application

    2.在struts-config.xml裏新加plug-in節點(注意順序,一定要是在message-resources節點後)    

    3.然後,在頁面裏就可以得到值:${applicationScope.data}

    4.值保存到屬性文件

       1.struts-config.xml->plug-in節點下set-property的value設爲"ApplicationResources.properties"
       2.在ApplicationResources.properties 寫tip1=This is default value
       3.在action里加一個類Env,是一個通用類,專門用來讀屬性文件的(可以直接拷就可以了)
       4.在MyPlugIn的init方法裏

           Env env=Env.getInstance(data);
           arg0.getServletContext().setAttribute("pro", env);
            //把env對象保存到application裏,比如:以後在頁面去值${applicationScope.env.tip1}
           其中,data是MyPlugIn裏的屬性
       5.在頁面success.jsp頁面加${applicationScope.env.tip1},運行看效果

 

3.這次犯的小錯誤
   1.processPreprocess書寫 浪費了時間(浪費時間:15分鐘)
   2.正確寫法:${applicationScope.data}(正確) 錯誤寫法:${application.data}(浪費時間:30分鐘,鬱悶)

 

4.error的運用(示例項目struts_error)
   1.error可以放在3個地方
     1.放在LoginForm的validate方法裏

 

     2.可以放在LoginAction中

     3.在LoginAction裏做異常處理的時候用(與2相同)
        此段代碼 說明了在業務邏輯出錯的時候,如何用errors保存

 

5.總結:
   1.RequestProcessor類的processPreprocess(rq,res)作用:
      1.目的:在進入LoginAction之前,可以做些控制  //詳細還待查資料
   2. MyPlugIn extends PlugIn 作用:
       1.流程:在Tomcat第一次啓動的時候,通過struts-config裏<plug-in>節點,
              然後在MyPlugIn的init方法裏,把data放進application裏,
              其中,在<plug-in>節點配置的時候,data屬性的value值,可以使*.properties文件
   3.error 在頁面有<html:errors property="password"/>
        1.流程:把ActionError存到ActionErrors裏,然後保存到request裏,
                   然後在頁面用request.getAttribute("password")取值
         
6.代碼   代碼下載

 

 

 

發佈了0 篇原創文章 · 獲贊 0 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章