自2006年04月12日
天氣預報
????????需要注意的地方就是form的action屬性的寫法了;??????? 2、在xwork.xml中增加相應的處理action的節點
????????這里需要注意的是action節點中name的值要與index.jsp中定義的action的名字要嚴格匹配,對于大小 寫是敏感的。在action節點中還包含了節點,以說明處理action之后會可能出現的不同結果(name)和相應的處理方式(type)。譬如說,如果Login的這個action處理success了,則使用dispatcher將結果分(dispatch)到相應的頁面。而在WAF框架中并沒有這樣的定義,因為在默認情況下如果不成功則會返回當前頁面,不過可以定義FlowHandler,并擁有類似的功能且更加靈活;??????? 3、實現類Login的代碼:
????????在代碼中,你會發現有兩個繼承變量ERROR與SUCCESS。這兩個變量是定義在Action這個接口的,而ActionSupport則實現了Action接口。在接口Action的代碼中,我們可以看到ERROR = "error"、SUCCESS = "success"。我們可以發現這兩個變量的值與xwork.xml中result子節點中的name的值是相匹配。除此之外,在代碼中,我也找不到了原來在開發中經常要用到的一個API:getParameter。事實上,將表單中數據析取出來的工作是由webwork這個唯一定義的servlet去完成的,而這個類會調用Login類中set的方法將用戶輸入的數據賦給Login類的屬性:loginId和loginPassword。在這里,我們也要跟前面index.jsp中的包含的標簽聯系起來。當數據被dispatch回index.jsp的時候,在index.jsp頁面render的過程中是調用了get的方法去獲取相應的數據的。??????? 最后,我們可以總結一下,整個Web應用程序的處理流程了:??????? 首先,當用戶提交了表單(form)至Login.action后,由web.xml中定義的唯一的一個servlet:webwork去處理這個請求。webwork會以action的name:Login到xwork.xml中尋找相應的處理action的類,于是就找到了fantasysoft.webwork包中的Login類,由Login類中的execute方法來處理提交的form的數據了;????????然后,根據execute方法的返回值,再到xwork.xml中對應的action節點中去找匹配的result子節點;??????? 最后,根據result子節點的定義,將處理結果分發(dispatch)或者重定向(redirect)至下一個頁面[3]。 ????????????????[1] 準備工作可以參考 WebWork?Getting Started ;??????? [2]?web.xml文件的具體內容,可以參考 WebWork Tutorial Lesson 2 ? ;??????? [3] 對于result的Type的更多介紹,可以參考 WebWork Tutorial Lesson 3 ?????
Powered by: BlogJava Copyright © tory