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.代碼 代碼下載