11月25日struts培训日记
今天對struts的一些細節進行了詳細講解:
一個ActionMapping對象對應struts-config.xml文件中的一個<action>元素,讀ActionMapping類的API幫助文檔,通過各個setter/getter方法,即可了解<action>元素的各個屬性的意義。
<action>元素的input屬性可以指向一個logon.do這樣的url,而不僅限于.jsp頁面。
<action>元素的unknown屬性的作用
講解了ForwardAction的應用:
??? <action parameter="/WEB-INF/jsp/logon.jsp" path="/index" type="org.apache.struts.actions.ForwardAction"/>
??? <!-- action forward="/WEB-INF/jsp/logon.jsp" path="/index" /-->
?? 通過上面的分析,請學員們回答為什么type屬性與forward屬性不能同時出現?
講解了DispatchAction的應用,提問:如果覆蓋DispatchAction的execute方法,將有什么效果?
分析了ActionFormBean與ActiornForm之間關系。
講解了表單校驗錯誤和業務邏輯校驗錯誤的處理流程
1. 請求參數-->ActionForm-->ActionForm.validate-->表單校驗錯誤則返回errors-->logon.jsp-->顯示出錯誤信息
?? 問題:要把errors存儲在request中,誰存儲的?
2.請求參數-->ActionForm-->ActionForm.validate-->表單校驗成功則調用Action.execute方法
??? -->邏輯校驗錯誤-->產生errors-->回logon.jsp顯示錯誤信息
?? 問題:這時候,誰把erros存儲到request中?怎么存?在存儲錯誤時,應該使用request.setAttribute("特殊屬性名",erros);存入的屬性名是一個固定的特殊名稱,這樣<html:errors>才能使用這個屬性名從請求域中取錯誤。這個固定的特殊屬性名是什么?如果記就太痛苦,那就讓saveErrors來幫忙吧。講課時先演示了直接使用request.setAttribute的情況,然后再使用saveErrors。
錯誤提示信息和普通信息都用ActionMessage,ActionMessage即代表錯誤,也代表消息。一個Message本身不是什么錯誤,只是我們把它的信息當作錯誤提示信息,還是當作普通信息來看罷了。使用saveErrors儲存的ActionMessages對象表示錯誤,即以Globals.ERROR_KEY作為屬性名進行存儲,使用saveMessage存儲的ActionMessage對象代表普通消息,即以Globals.MESSAGE_KEY作為屬性名進行存儲。
分析了ActionMessages內部的存儲結構,同一字段名可以對應多條ActionMessage,例如:
errors.addMessage("age",new ActionMessage("error.age"));
errors.addMessage("age",new ActionMessage("error.old"));
有一特殊字段名ActionMessages.GLOBAL_MESSAGE,代表全局錯誤信息。?
struts中提供的防止表單重復提交與取消提交的原理與應用。取消操作向Session域中存儲一個特殊屬性,其他操作在處理過程可以檢索這個屬性,如果檢索到了則執行取消操作。
轉載于:https://www.cnblogs.com/dairongle97/archive/2006/11/28/2402156.html
總結
以上是生活随笔為你收集整理的11月25日struts培训日记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2007年处女星座全年运势预测
- 下一篇: 11月27日struts项目练习评审