公司介绍 产品展示 业务支持 解决方案 文档资料
网站导航 访客留言 技术论坛
     
  产品资料
  业界动态
     
  JAVA技术


首  页 > 文档资料 > JAVA技术  
 
  XDoclet 1.2.2 之WebWork2

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属性即可。
由于opensymphony提供的WebWork2的XDoclet module有不少错误,这里是一个修改版本,你可以右击鼠标另存下载到本地。不过XDoclet 1.3的版本会加入对WebWork2的支持,到时这个插件也就默认包含在XDoclet的发布包中啦。

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=""