您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關WebWork如何配置,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
在標簽方面,WebWork配置這幾個標簽是有嚴格順序的,正確順序如下:
先〈result-types〉,必須有〈result-type/〉項; 再〈interceptors〉,必須有〈interceptor/〉項; 接下來是〈default-interceptor-ref name="completeStack"〉 default-interceptor-ref〉; 然后是〈global-results〉,必須有〈result/〉項; 然后〈global-exception-mappings〉, 子項如〈exception-mapping result="errorPage" exception="java.lang.Exception"/〉 ***才是〈action/〉
***才是
〈action name="test" 〉 〈interceptor-ref name="exception"/ 〉 〈interceptor-ref name="basicStack"/ 〉 〈exception-mapping exception="com.acme. CustomException" result="custom_error"/ 〉 〈result name="custom_error" 〉custom_error.ftlresult 〉 〈result name="success" type="freemarker" 〉test.ftlresult 〉 action 〉
webwork運行流程:
默認執行execute()方法,該方法默認返回SUCCESS;
〈Script language="JavaScript" src="/js/pagenumber.js" 〉 〈/Script 〉 〈script Language="JavaScript" 〉 listNumUrl("courseInfoList.action?&pageNum=" ,${pageNum},${allPageNum}); 〈/script 〉
Ognl工作原理:
OgnlValueStack stack=new OgnlValueStack();
stack.push(new User())://首先將打算賦值的對象壓入棧中
stack.setValue("name","erica");//為棧頂對象User指定的屬性名name賦值
HttpSession是一個接口,
Properties實現了繼承了HashTable(實現了Map接口),也就是說它保存的也是值-鍵對象,它的setProperty("name","value")實質上就是保存到HashTable里了。
〈action name="itemPersonalInput" class="cn.com.s520.course.ItemPersonalInputAction"〉 〈interceptor-ref name="fileUpload"〉 〈param name="allowedTypes"〉 application/msword,image/gif, image/jpeg,image/pjpeg,application/x-shockwave-flash param〉 〈param name="maximumSize">10485760param〉 interceptor-ref〉 〈interceptor-ref name="basicStack"/〉 〈result name="input" type="freemarker"> /course/ItemPersonalInput.ftlresult〉 〈result name="error" type="freemarker"> course/ItemPersonalInput.ftlresult〉 〈result name="success" type="redirect"> /itemPersonalList.actionresult〉 action〉
private File images;
private String imagesContentType;
private String imagesFileName;//得到不含路徑的文件名,如test.jpg
〈result name="success" type="stream" 〉 〈param name="contentType">image/jpegparam 〉 〈param name="inputName">imageStreamparam 〉 〈param name=" contentDisposition">filename="logo.png"param 〉 〈param name="bufferSize">4096param 〉 result>
1,〈param name="contentType">application/x-msdownloadparam 〉
contentType設成 application/x-msdownload 就可以。這樣瀏覽器會保證彈出一個下載文件的對話框。
2,inputName 這個比較重要,這個名字是輸入流的名稱, 以后要steam result的實現類中為根據OGNL的表達式去查找的。
contentDisposition 這個是下載之后,保存在用戶端的文件名稱。
3,另外一個參數:contentLength就是下載文件的大小,webwork的stream result似乎實現有問題,不能根據文件的大小動態進行設置,只能寫死。
這個WebWork配置參數的意義是告訴瀏覽下載的文件有多大,以便瀏覽器正確的顯示進度條。如果這個功能很重要的話,可以重新寫一個RESULT來實現。
〈result>/form.jspresult>如果不指明,默認為success 〈action name="userReg" class="com.opensymphony.xwork.ActionSupport" 〉 〈result name="input">/app/userreg.ftlresult 〉 〈/action 〉
這里將不會出現預期的頁面,因為默認為success,不會轉向我們指定的input頁面
〈result name="no-content" type="header"〉 〈param name="status"〉204param〉 〈param name="headers.customHeaderA"〉Aparam〉 〈param name="headers.customHeaderB"〉Bparam〉 result〉
chain視圖:
同一個包里,可設置type為chain,對應action的擴展名也可以不寫,
〈result name="error" type="chain"〉 〈param name="actionName"〉barparam〉 result〉
不同包里
〈result name="errorPage" type="chain" 〉 〈param name="namespace" 〉/param 〉 〈param name="actionName" 〉barparam 〉 result 〉
或者設置type為redirect,重定向過去
〈action name="index" class=" com.opensymphony.xwork.ActionSupport"〉 〈result name="success" type="redirect"〉 /course/courseInfoList.actionresult〉 action〉
〈default-interceptor-ref name="defaultStack"/〉
這里只是在你沒有設置攔截器時才用到,如果WebWork配置攔截器了,就不會調用這個了。
關于“WebWork如何配置”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。