Think & Tech

关于JavaScript的思考

XDoclet简化Struts开发

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

所有得Struts的各组件关系如上所示,其中有两个主要类,DispatchActionDispatchValueBeanDispatchAction从上个页面获得输入,根据输入定位到不同的页面(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:

<!—- xdocletjar文件包含到编译路径中 -->

<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配置文件。

阅读更多
个人分类: Java Me
想对作者说点什么? 我来说一句

Eclipse完美支持XDoclet(新)

2009年04月14日 527KB 下载

没有更多推荐了,返回首页

不良信息举报

XDoclet简化Struts开发

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭