成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

WebWork中xwork.xml文件淺析

開發(fā) 后端
本文介紹WebWork框架中的xwork.xml文件,通過具體的示例介紹WebWork框架的基本運行原理和主要工作單位。

示例

  1. ﹤?xml version="1.0" encoding="ISO-8859-1"?﹥  
  2. ﹤!DOCTYPE xwork   
  3. PUBLIC   
  4. "-//OpenSymphony Group//XWork 1.0//EN"   
  5. "http://www.opensymphony.com/xwork/xwork-1.0.dtd"﹥  
  6. ﹤xwork﹥  
  7. ﹤include file="webwork-default.xml"/﹥  
  8. ﹤package name="default" extends="webwork-default"﹥  
  9. ﹤interceptors﹥  
  10. ﹤interceptor-stack name="defaultComponentStack"﹥  
  11. ﹤interceptor-ref name="component"/﹥  
  12. ﹤interceptor-ref name="defaultStack"/﹥  
  13. ﹤/interceptor-stack﹥  
  14. ﹤/interceptors﹥  
  15. default-interceptor-ref name="defaultStack"/﹥  
  16. action name="SimpleCounter" class="com.opensymphony.  
  17. webwork.example.counter.SimpleCounter"﹥  
  18. ﹤result name="success" type="dispatcher"﹥  
  19. /success.jsp﹤/result﹥  
  20. ﹤interceptor-ref name="defaultComponentStack"/﹥  
  21. ﹤/action﹥  
  22. ﹤!--  
  23. - Velocity implementation of the SimpleCounter.    
  24. Also demonstrate a more verbose version of result element  
  25. --﹥  
  26. action name="VelocityCounter" class="com.opensymphony.webwork.  
  27. example.counter.SimpleCounter"﹥  
  28. ﹤result name="success" type="velocity"﹥  
  29. ﹤param name="location"﹥/success.vm﹤/param﹥  
  30. ﹤/result﹥  
  31. ﹤interceptor-ref name="defaultComponentStack"/﹥  
  32. ﹤/action﹥  
  33. ﹤!--  
  34. - Different method can be used (processForm).   
  35. --﹥  
  36. action name="formTest" class="com.opensymphony.webwork.example.  
  37. FormAction" method="processForm" ﹥  
  38. ﹤result name="success" type="dispatcher"﹥/formSuccess.jsp﹤/result﹥  
  39. ﹤result name="invalid.token" type="dispatcher"﹥/form.jsp﹤/result﹥  
  40. ﹤interceptor-ref name="defaultStack"/﹥  
  41. ﹤interceptor-ref name="token"/﹥  
  42. ﹤/action﹥  
  43. ﹤/package﹥  
  44. ﹤/xwork﹥  

活動

  1. action name="formTest"   
  2. class="com.opensymphony.webwork.example.FormAction"   
  3. method="processForm"﹥ 

活動是WebWork的基本工作單元, 它正是定義了活動. 活動通常有一個請求(通常是點擊按鈕, 或提交表單). 主要的action元素有兩部分, 友好的名字(在URL中引用, 如saveForm.action)和對應的"處理(handler)"類.

可選的"method"屬性告訴WebWork應當調用活動的哪個方法.

 如果你不填寫method屬性, WebWork缺省調用execute(). 如果活動沒有execute()方法, 也沒有在xml中指定method屬性, WebWork將拋出異常.

同樣, 你也可以在表單中指定"actionName!something"來告訴WebWork調用"doSomething"方法. 例如, "formTest!save.action"將調用FormAction的"save"方法. 該方法必須是public且沒有參數:

  1. public String save() throws Exception  
  2. {  
  3. ...  
  4. return SUCCESS;  
  5. }  

活動的所有配置都可以用在"actionName!something"中(截取器, 結果類型等)

  1. 〈result name="missing-data" type="dispatcher"〉  
  2. 〈param name="location"〉/form.jsp〈/param〉  
  3. 〈param name="parameterA"〉A〈/param〉  
  4. 〈param name="parameterB"〉B〈/param〉  
  5. 〈/result〉  

Result元素告訴WebWork活動執(zhí)行后下一步該做什么. "name"屬性對應活動execute() 方法返回的結果代碼. "type"屬性表示使用哪個結果類型(參見結果類型). 可以使用"param"元素向視圖傳遞參數:

  1. 〈result-types 〉  
  2. ....  
  3. 〈result-type name="header" 
  4. class="com.opensymphony.webwork.dispatcher.  
  5. HttpHeaderResult"/ 〉  
  6. 〈/result-types 〉  
  7. 〈result name="no-content" type="header" 〉  
  8. 〈param name="status" 〉204〈/param 〉  
  9. 〈param name="headers.customHeaderA" 〉A〈/param 〉  
  10. 〈param name="headers.customHeaderB" 〉B〈/param 〉  
  11. 〈/result 〉  

下面是WebWork內置的標準結果代碼(定義在Action接口中), 包括:

Action.SUCCESS = "success";

Action.NONE    = "none";

Action.ERROR   = "error";

Action.INPUT   = "input";

Action.LOGIN   = "login";

你可以擴充你認為適合的結果代碼(如"missing-data"). 大多數情況下你只需使用SUCCESS和ERROR, SUCCESS將前進到下一個頁面.

如果你只需要指定"location"屬性, 可以使用簡寫形式:

  1. ﹤result name="missing-data"   
  2. type="dispatcher"﹥/form.jsp﹤/result﹥  

參閱webwork-default.xml或Result Types以了解標準結果類型

截取器

截取器允許定義活動執(zhí)行前后的代碼. 截取器是編寫Web應用的強大工具. 一些最常用的實現是:

安全檢查(確保用戶已登陸)

跟蹤紀錄 (記錄每一個活動)

檢查執(zhí)行瓶頸 (在活動前后啟動計時器, 以檢查應用瓶頸)

也可以將截取器連接起來創(chuàng)建一個截取器棧. 如果你想完成登陸檢查, 安全檢查, 并記錄每個活動調用, 使用截取器棧會十分容易.

必須先定義截取器(給它命名)然后才能聯接成棧:

  1. ﹤interceptors﹥  
  2. ﹤interceptor name="security"   
  3. class="com.mycompany.security.SecurityInterceptor"/﹥  
  4. ﹤interceptor-stack name="defaultComponentStack"﹥  
  5. ﹤interceptor-ref name="component"/﹥  
  6. ﹤interceptor-ref name="defaultStack"/﹥  
  7.  ﹤/interceptor-stack﹥  
  8. ﹤/interceptors﹥  

要在活動中使用它們:

  1. action name="VelocityCounter"   
  2. class="com.opensymphony.webwork.example.  
  3. counter.SimpleCounter"﹥  
  4. ﹤result name="success"﹥...﹤/result﹥  
  5. ﹤interceptor-ref   
  6. name="defaultComponentStack"/﹥  
  7. ﹤/action﹥  

注意: 可以引用攔截器或棧的名字

更多細節(jié)參見截取器.

視圖

WebWork支持JSP和Velocity作為應用表示層. 本例使用JSP文件. Webwork附帶了標簽庫(taglibs). 你可以在JSP中項組件一樣使用標簽庫.下面是form.jsp的片斷:

  1. ﹤%@ taglib prefix="ww" uri="webwork" %﹥  
  2. ﹤html﹥  
  3. ﹤head﹥﹤title﹥Webwork Form Example﹤/title﹥  
  4. ﹤/head﹥  
  5. ﹤body﹥  
  6. ﹤ww:form name="myForm" action="'formTest'"   
  7. namespace="/" method="POST"﹥  
  8. table﹥  
  9. ﹤ww:textfield label="First Name"   
  10. name="'formBean.firstName'"   
  11. value="formBean.firstName"/﹥  
  12. ﹤ww:textfield label="Last Name" 
  13.  name="'formBean.lastName'"   
  14. value="formBean.lastName"/﹥  
  15. ﹤ww:submit value="Save Form"/﹥  
  16. ﹤/table﹥  
  17. ﹤/ww:form﹥  
  18. ﹤/body﹥  

處理經過如下:

WebWork監(jiān)控以.action結尾的URI(定義在web.xml中)

WebWork在活動定義中查找活動formTest.

WebWork創(chuàng)建formTest并調用com.opensymphony.webwork.example.FormAction的方法processForm(定義在xwork.xml中).

該方法處理成功并返回SUCCESS

WebWork將返回值SUCCESS轉換成地址formSuccess.jsp(定義在b class="strong">xwork.xml中)并執(zhí)行重定向.

包含

為了易于管理大規(guī)模開發(fā)活動(包含大量活動和配置), WebWork允許在xwork.xml中包含其他配置文件 :

  1. ﹤xwork﹥  
  2. ﹤include file="webwork-default.xml"/﹥  
  3. ﹤include file="user.xml"/﹥  
  4. ﹤include file="shoppingcart.xml"/﹥  
  5. ﹤include file="product.xml"/﹥  
  6. ....  
  7. ﹤/xwork﹥  

被包含文件必須與xwork.xml的格式相同(具有相同的doctype及其它)并放置在類路徑中(通常位于/WEB-INF/classes或/WEB-INF/lib的jar文件中).

【編輯推薦】

  1. WebWork框架原理與應用(1)
  2. 用WebWork注冊頁面建立過程
  3. WebWork注入Servlet方法詳解
  4. WebWork中返回INPUT的原因
  5. WebWork如何實現文件上傳配置過程
責任編輯:冰荷 來源: baidu
相關推薦

2009-07-09 15:55:18

WebWork配置文件

2009-07-16 17:42:47

WebWork配置

2009-07-14 17:20:31

Webwork文件上傳

2009-07-14 17:53:11

WebWork安裝WebWork配置

2009-07-16 14:58:03

WebWork安裝WebWork配置

2009-07-14 14:41:33

Webwork與Spr

2009-07-14 13:08:55

WebWork與Spr

2009-07-14 15:52:00

WebWork文件下載

2009-09-09 18:00:55

C# XML編程

2009-07-14 01:00:43

WebWorkActionConte

2009-09-14 16:46:15

LINQ to XML

2009-07-08 10:56:04

WebWork

2009-09-16 15:33:22

LINQ to XML

2009-07-08 09:29:58

WebWork

2009-08-18 16:42:49

C# 操作XML

2009-06-16 13:27:59

Hibernate x

2009-07-16 17:26:11

WebWork文件上傳

2009-07-14 16:08:41

WebWork學習

2009-07-14 17:34:53

Webwork配置

2009-08-18 16:30:41

C# 操作XML
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品不卡视频 | 亚洲欧美日本在线 | 久久99精品久久 | 久久精品亚洲精品国产欧美 | 国产成人综合久久 | 久久99精品久久久久久青青日本 | 久综合 | 中文在线a在线 | 欧美成人a | 伊色综合久久之综合久久 | 久久精品欧美一区二区三区麻豆 | 日本特黄a级高清免费大片 成年人黄色小视频 | 日本xx视频免费观看 | 中文字幕在线观看视频一区 | 视频一区二区在线观看 | 亚洲一区国产 | 国产成人久久精品一区二区三区 | 久久手机在线视频 | 亚洲综合资源 | 91在线看 | 中文字幕 视频一区 | 羞羞视频在线免费 | 久久久国产精品入口麻豆 | 久久久成人一区二区免费影院 | www.精品国产 | 亚洲视频欧美视频 | 亚洲自拍偷拍欧美 | 亚洲欧洲成人av每日更新 | 国产99精品| av免费成人 | 一区二区三区在线播放视频 | 欧美 日韩 国产 成人 在线 91 | 久久免费精品视频 | www性色| 精品国产欧美一区二区三区成人 | 日本不卡一区二区三区在线观看 | 成人小视频在线观看 | 亚洲成人激情在线观看 | 久久新视频| 欧美自拍视频 | 国产精品爱久久久久久久 |