XDoclet简化Struts开发

王朝java/jsp·作者佚名  2006-01-31
窄屏简体版  字體: |||超大  

Struts是一个Web开发框架,是用Struts避免了简单的JSP + Servlet开发过程,维护过程中的一系列问题,但是struts配置文件的编辑始终是一个问题。下面我们使用Xdoclet来自动生成struts配置文件。Xdoclet是一个使用Java代码中的注释来生成接口文件,或者配置文件的开源工具。

所有得Struts的各组件关系如上所示,其中有两个主要类,DispatchAction和DispatchValueBean。DispatchAction从上个页面获得输入,根据输入定位到不同的页面(0定位到dispatch_0.jsp,1定位dispatch_1.jsp)。

可以看看下列代码(只涉及到Xdoclet相关的部分):

//DispatchValueBean.java

/**

*

* @author mazhao

* @struts.form

* name="DispatchValueBean"

*/

public class DispatchValueBean extends org.apache.struts.action.ActionForm {

private String dispatchValue = "0";

public DispatchValueBean () {

}

public String getDispatchValue()

{

return dispatchValue;

}

public void setDispatchValue(String dispatchValue)

{

this.dispatchValue = dispatchValue;

}

}

上述的蓝色代码表示自己是一个FormBean,且FormBean的名字是DispatchValueBean。

//DispatchAction.java

/**

*

* @author mazhao

* @struts.action

* name="DispatchValueBean"

* path="/DispatchAction.do"

* input="/index.jsp"

*

* @struts.action-forward

* name="dispatch_0"

* path="/dispatch_0.jsp"

* redirect="false"

*

* @struts.action-forward

* name="dispatch_1"

* path="/dispatch_1.jsp"

* redirect="false"

*

*/

public class DispatchAction extends org.apache.struts.action.Action {

private String dispatchValue = "0";

public DispatchAction() {

}

public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {

DispatchValueBean dispatchBean = (DispatchValueBean)form;

String value = dispatchBean.getDispatchValue();

if("0".equals(value))

{

return mapping.findForward("dispatch_0");

}

else

{

return mapping.findForward("dispatch_1");

}

}

public String getDispatchValue()

{

return dispatchValue;

}

public void setDispatchValue(String dispatchValue)

{

this.dispatchValue = dispatchValue;

}

}

上述的蓝色代码说明该Action所使用的FormBean,输入页面,path和不同的ActionForward。

根据如上的代码可以使用如下的build文件来自动生成struts-config.xml:

<!—- 将xdoclet的jar文件包含到编译路径中 -->

<path id="compile.classpath">

<fileset dir="${xdoclet.dir}">

<include name="*.jar"/>

</fileset>

</path>

<!—-定义子定义的任务标签 -->

<taskdef

name="webdoclet"

classname="xdoclet.modules.web.WebDocletTask"

classpathref="compile.classpath"

/>

<!—使用自定义的任务标签生成struts-config.xml文件-->

<target

name="webdoclet"

depends="prepare"

description="Generate deployment descriptors (run actionform to generate forms first)"> <echo>+---------------------------------------------------+</echo>

<echo>| |</echo>

<echo>| R U N N I N G W E B D O C L E T |</echo>

<echo>| |</echo>

<echo>+---------------------------------------------------+</echo>

<webdoclet

destdir="ant"

mergedir="ant/merge"

verbose="false"

>

<fileset dir="JavaSource">

<include name="**/*Action.java"/>

<include name="**/*Bean.java"/>

</fileset>

<strutsconfigxml

destdir="ant"

/>

</webdoclet>

</target>

建议在详细设计阶段使用这种方式生成代码框架和struts-config.xml配置文件。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航