XDoclet简化Struts开发 - 中国WEB开发者网络 (http://www.webasp.net) -- 技术教程 (http://www.webasp.net/article/) --- XDoclet简化Struts开发 (http://www.webasp.net/article/25/24782.htm) |
| -- 作者:未知 -- 发布日期: 2005-06-06 |
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配置文件。 |
| webasp.net |