该帖已经被评为精华帖
|
|
---|---|
作者 | 正文 |
发表时间:2005-01-18
文档: XDoclet 1.2.2没有包含对WebWork2的支持,不过opensymphony提供了一个XDoclet的试用版模板,下面让我们看看如何利用这个模块生成WebWork2的核心XWork配置文件。 1 下载WebWork2的XDoclet模板,加入XDoclet运行库的目录下。 2 在Ant的build.xml进行WebWork2任务定义,然后编写执行配置文件生成的代码。 <taskdef name="Webwork2" classname="xdoclet.modules.webwork2.Webwork2DocletTask" classpathref="project.classpath"/> <WebWork2 destDir="${project.WEB-INF}" excludedtags="@version,@author" > <fileset dir="${project.src}"> <include name="**/action/**/*Action.java"/> </fileset> <xworkxml xmlencoding="${project.encoding}" mergeDir="${project.merge.directory}" /> </WebWork2> WebWork2具体设置请参考XDoclet的xdoclet任务,这里主要是设置destDir和定义要处理的文件(fileset子元素)。子元素xworkxml主要负责XWork配置文件的生成,可以参考xdoclet任务下的xml子任务,xworkxml生成的文件名为xwork.xml,在mergetDir中,我们要溶入两个文件到xwork.xml文件中,一个是xwork-included.xml,所有文件内容将会包含在<xwork>元素下。另一个是all-package-included.xml,所有文件内容将包含在每一个<package>元素下。 3 WebWork2的Tag参考。我们需要在Java源码中添加XDoclet的tag,这样XDoclet才能处理这些Tag,这里是以“:”分隔namespace和tag-name的,而不是XDoclet标准的“.”分隔符,这里要注意一下。下面是一个添加了XDoclet标签的Action的部分代码: /** * @author <a href="mailto:youmail@yourdomain.com">jacky</a> Date: 2005-1-17 * @webwork2:package name="system" namespace="system" * @webwork2:action name="system/logon" success="/index.jsp" */ public class LogonAction extends ActionSupport { …….. } 如果你想设置默认的namespace,请在webwork2:package标签中不要包含namespace属性即可。 WebWork2的Tag参考: ----- flowing is class level. @webwork2:package name="" extends="" namespace="" abstract="" externalReferenceResolver="" includes="" //delimiter is ',' @webwork2:result-type package="" name="" class="" @webwork2.interceptor name="" package="" class="" @webwork2:interceptor-stack name="" package="" interceptor-ref="" //delimiter is ',' @webwork2:result //for global-result name="" value="" package="" type="" @webwork2:default-interceptor-ref name="" package="" @webwork2:action name="" //include namespace,such as “namespace/actioname” bean-id="" converter="" param="" success="" result-type-success="" error="" result-type-error="" input="" result-type-input="" interceptor-ref="" @webwork2:result-param-success name="" value="" @webwork2:result-param-error name="" value="" @webwork2:result-param-input name="" value="" @webwork2:custom-view name="" value="" type="" ----- flowing is method level. @webwork2:command name="" bean-id="" converter="" param="" success="" result-type-success="" error="" result-type-error="" input="" result-type-input="" interceptor-ref="" @webwork2:result-param-success name="" value="" @webwork2:result-param-error name="" value="" @webwork2:result-param-input name="" value="" @webwork2:custom-view name="" value="" type="" 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2005-01-21
请问web.xml for ww2有没有用xdoclet1.2.2生成的方法?
还有一些action-validation.xm。。。 |
|
返回顶楼 | |
发表时间:2005-02-17
注释如下
/** * @author rtm 2005-1-26 * * @webwork2:package name="login" * @webwork2:interceptor-stack name="defaultComponentStack" package="login" interceptor-ref="component,defaultStack" * @webwork2:default-interceptor-ref name="defaultStack" package="login" * @webwork2:action name="login" success="sucess.jsp" error="error.jsp" input="login.jsp" result-type-success="dispatcher" result-type-error="dispatcher" result-type-input="dispatcher" interceptor-ref="validationWorkflowStack" */ 生成的文件如下 <?xml version="1.0" encoding="GB2312"?> <!DOCTYPE xwork PUBLIC "-//OpenSymphony Group//XWork 1.0//EN" "http://www.opensymphony.com/xwork/xwork-1.0.dtd"> <xwork> <package name="login"> <default-interceptor-ref name="defaultStack"/> <action name="login" class="example.LoginAction"> <result name="success" type="dispatcher"> <param name="location">sucess.jsp</param> </result> <result name="error" type="dispatcher"> <param name="location">error.jsp</param> </result> <result name="input" type="dispatcher"> <param name="location">login.jsp</param> </result> <interceptor-ref name="validationWorkflowStack"/> </action> </package> </xwork> interceptor-stack的那一段 <interceptors> <interceptor-stack name="defaultComponentStack"> <interceptor-ref name="component"/> <interceptor-ref name="defaultStack"/> </interceptor-stack> </interceptors> 没有生成出来 |
|
返回顶楼 | |
发表时间:2005-02-19
请使用merge功能,没有问题的。
|
|
返回顶楼 | |
发表时间:2005-08-30
我添加了
* @webwork2:package name="default" extends="webwork-default" includes="webwork-default.xml" * @webwork2:interceptor name="Test" package="default" class="com.songlai.action.Test" * @webwork2:interceptor-stack name="consoleStack" package="default" interceptor-ref="Test,model-driven,params" * @webwork2:default-interceptor-ref name="consoleStack" package="default" 却只生成 <package name="default" extends="webwork-default"> <interceptors> <interceptor name="Test" class="com.songlai.action.Test" /> <interceptor-stack name="consoleStack"> <interceptor-ref name="Test"/> <interceptor-ref name="model-driven"/> <interceptor-ref name="params"/> </interceptor-stack> </interceptors> </package> 本来还应该生成一句 <default-interceptor-ref name="consoleStack"/> !!的 其中我还一起测试了 @webwork2:result-type、@webwork2.interceptor、@webwork2:interceptor-stack、@webwork2:default-interceptor-ref, 但是仅仅按照模版生成了result-type,别的都没有生成出来,模板文件也看过了,还是一无所获,百思不得其解 |
|
返回顶楼 | |
发表时间:2005-08-30
可以考虑使用xdoclet2的webwork模块.
不过我没用过. |
|
返回顶楼 | |
发表时间:2005-08-31
scud 写道 可以考虑使用xdoclet2的webwork模块.
不过我没用过. 我用的就是你说的那个,不过出了问题 一个很好的东西,却怎么样都过不去那里了 |
|
返回顶楼 | |
发表时间:2005-09-21
没人研究一下吗?
这可是个很大的问题啊 |
|
返回顶楼 | |
发表时间:2005-09-21
什么问题?可以访问啊...
|
|
返回顶楼 | |
发表时间:2005-09-23
freeboat 写道 我添加了
* @webwork2:package name="default" extends="webwork-default" includes="webwork-default.xml" * @webwork2:interceptor name="Test" package="default" class="com.songlai.action.Test" * @webwork2:interceptor-stack name="consoleStack" package="default" interceptor-ref="Test,model-driven,params" * @webwork2:default-interceptor-ref name="consoleStack" package="default" 却只生成 <package name="default" extends="webwork-default"> <interceptors> <interceptor name="Test" class="com.songlai.action.Test" /> <interceptor-stack name="consoleStack"> <interceptor-ref name="Test"/> <interceptor-ref name="model-driven"/> <interceptor-ref name="params"/> </interceptor-stack> </interceptors> </package> 本来还应该生成一句 <default-interceptor-ref name="consoleStack"/> !!的 其中我还一起测试了 @webwork2:result-type、@webwork2.interceptor、@webwork2:interceptor-stack、@webwork2:default-interceptor-ref, 但是仅仅按照模版生成了result-type,别的都没有生成出来,模板文件也看过了,还是一无所获,百思不得其解 看这个,我定义的 和 生成的差了好多 定义的好几项 都不生成。。。不知道为什么 |
|
返回顶楼 | |