本篇文章给大家分享的是有关WebWork中xwork.xml文件是怎么样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
示例
﹤?xml version="1.0" encoding="ISO-8859-1"?﹥ ﹤!DOCTYPE xwork PUBLIC "-//OpenSymphony Group//XWork 1.0//EN" "http://www.opensymphony.com/xwork/xwork-1.0.dtd"﹥ ﹤xwork﹥ ﹤include file="webwork-default.xml"/﹥ ﹤package name="default" extends="webwork-default"﹥ ﹤interceptors﹥ ﹤interceptor-stack name="defaultComponentStack"﹥ ﹤interceptor-ref name="component"/﹥ ﹤interceptor-ref name="defaultStack"/﹥ ﹤/interceptor-stack﹥ ﹤/interceptors﹥ ﹤default-interceptor-ref name="defaultStack"/﹥ ﹤action name="SimpleCounter" class="com.opensymphony. webwork.example.counter.SimpleCounter"﹥ ﹤result name="success" type="dispatcher"﹥ /success.jsp﹤/result﹥ ﹤interceptor-ref name="defaultComponentStack"/﹥ ﹤/action﹥ ﹤!-- - Velocity implementation of the SimpleCounter. Also demonstrate a more verbose version of result element --﹥ ﹤action name="VelocityCounter" class="com.opensymphony.webwork. example.counter.SimpleCounter"﹥ ﹤result name="success" type="velocity"﹥ ﹤param name="location"﹥/success.vm﹤/param﹥ ﹤/result﹥ ﹤interceptor-ref name="defaultComponentStack"/﹥ ﹤/action﹥ ﹤!-- - Different method can be used (processForm). --﹥ ﹤action name="formTest" class="com.opensymphony.webwork.example. FormAction" method="processForm" ﹥ ﹤result name="success" type="dispatcher"﹥/formSuccess.jsp﹤/result﹥ ﹤result name="invalid.token" type="dispatcher"﹥/form.jsp﹤/result﹥ ﹤interceptor-ref name="defaultStack"/﹥ ﹤interceptor-ref name="token"/﹥ ﹤/action﹥ ﹤/package﹥ ﹤/xwork﹥
活动
﹤action name="formTest" class="com.opensymphony.webwork.example.FormAction" 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且没有参数:
public String save() throws Exception { ... return SUCCESS; }
活动的所有配置都可以用在"actionName!something"中(截取器, 结果类型等)
〈result name="missing-data" type="dispatcher"〉 〈param name="location"〉/form.jsp〈/param〉 〈param name="parameterA"〉A〈/param〉 〈param name="parameterB"〉B〈/param〉 〈/result〉
Result元素告诉WebWork活动执行后下一步该做什么. "name"属性对应活动execute() 方法返回的结果代码. "type"属性表示使用哪个结果类型(参见结果类型). 可以使用"param"元素向视图传递参数:
〈result-types 〉 .... 〈result-type name="header" class="com.opensymphony.webwork.dispatcher. HttpHeaderResult"/ 〉 〈/result-types 〉 〈result name="no-content" type="header" 〉 〈param name="status" 〉204〈/param 〉 〈param name="headers.customHeaderA" 〉A〈/param 〉 〈param name="headers.customHeaderB" 〉B〈/param 〉 〈/result 〉
下面是WebWork内置的标准结果代码(定义在Action接口中), 包括:
Action.SUCCESS = "success";
Action.NONE = "none";
Action.ERROR = "error";
Action.INPUT = "input";
Action.LOGIN = "login";
你可以扩充你认为适合的结果代码(如"missing-data"). 大多数情况下你只需使用SUCCESS和ERROR, SUCCESS将前进到下一个页面.
如果你只需要指定"location"属性, 可以使用简写形式:
﹤result name="missing-data" type="dispatcher"﹥/form.jsp﹤/result﹥
参阅webwork-default.xml或Result Types以了解标准结果类型
截取器
截取器允许定义活动执行前后的代码. 截取器是编写Web应用的强大工具. 一些最常用的实现是:
安全检查(确保用户已登陆)
跟踪纪录 (记录每一个活动)
检查执行瓶颈 (在活动前后启动计时器, 以检查应用瓶颈)
也可以将截取器连接起来创建一个截取器栈. 如果你想完成登陆检查, 安全检查, 并记录每个活动调用, 使用截取器栈会十分容易.
必须先定义截取器(给它命名)然后才能联接成栈:
﹤interceptors﹥ ﹤interceptor name="security" class="com.mycompany.security.SecurityInterceptor"/﹥ ﹤interceptor-stack name="defaultComponentStack"﹥ ﹤interceptor-ref name="component"/﹥ ﹤interceptor-ref name="defaultStack"/﹥ ﹤/interceptor-stack﹥ ﹤/interceptors﹥
要在活动中使用它们:
﹤action name="VelocityCounter" class="com.opensymphony.webwork.example. counter.SimpleCounter"﹥ ﹤result name="success"﹥...﹤/result﹥ ﹤interceptor-ref name="defaultComponentStack"/﹥ ﹤/action﹥
注意: 可以引用拦截器或栈的名字
更多细节参见截取器.
视图
WebWork支持JSP和Velocity作为应用表示层. 本例使用JSP文件. Webwork附带了标签库(taglibs). 你可以在JSP中项组件一样使用标签库.下面是form.jsp的片断:
﹤%@ taglib prefix="ww" uri="webwork" %﹥ ﹤html﹥ ﹤head﹥﹤title﹥Webwork Form Example﹤/title﹥ ﹤/head﹥ ﹤body﹥ ﹤ww:form name="myForm" action="'formTest'" namespace="/" method="POST"﹥ ﹤table﹥ ﹤ww:textfield label="First Name" name="'formBean.firstName'" value="formBean.firstName"/﹥ ﹤ww:textfield label="Last Name" name="'formBean.lastName'" value="formBean.lastName"/﹥ ﹤ww:submit value="Save Form"/﹥ ﹤/table﹥ ﹤/ww:form﹥ ﹤/body﹥
处理经过如下:
WebWork监控以.action结尾的URI(定义在web.xml中)
WebWork在活动定义中查找活动formTest.
WebWork创建formTest并调用com.opensymphony.webwork.example.FormAction的方法processForm(定义在xwork.xml中).
该方法处理成功并返回SUCCESS
WebWork将返回值SUCCESS转换成地址formSuccess.jsp(定义在b class="strong">xwork.xml中)并执行重定向.
包含
为了易于管理大规模开发活动(包含大量活动和配置), WebWork允许在xwork.xml中包含其他配置文件 :
﹤xwork﹥ ﹤include file="webwork-default.xml"/﹥ ﹤include file="user.xml"/﹥ ﹤include file="shoppingcart.xml"/﹥ ﹤include file="product.xml"/﹥ .... ﹤/xwork﹥
被包含文件必须与xwork.xml的格式相同(具有相同的doctype及其它)并放置在类路径中(通常位于/WEB-INF/classes或/WEB-INF/lib的jar文件中).
以上就是WebWork中xwork.xml文件是怎么样的,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。