<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    jinfeng_wang

    G-G-S,D-D-U!

    BlogJava 首頁(yè) 新隨筆 聯(lián)系 聚合 管理
      400 Posts :: 0 Stories :: 296 Comments :: 0 Trackbacks
    http://www.logemann.org/day/archives/000148.html


    For all those out there using Spring together with Struts, i created a small howTo regarding automatic generation of relevant files, especially the boring action-servlet-xml file which must be in synch with your struts-config.xml, at least for all Struts actions which should be injected by Spring.

    Lets start with the Action class:

    /**
    * Action to delete a Client
    * Date: 09.02.2005
    * Time: 15:29:15
    *
    * @author Logemann - Logentis e.K. (ml@logentis.de)
    * @version $Id$
    * @struts.action path="clientDelete" validate="false"
    * type="org.springframework.web.struts.DelegatingActionProxy"
    * name="emptyform"
    * @struts.action-forward name="back"
    * path="/clientManager.html" redirect="true"
    * @spring.bean name="clientDelete"
    */
    public class ClientDeleteAction extends Action {

    ClientManager clientManagerService;



    /**

    * Spring injection

    *

    * @param clientManagerService clientManagerService

    * @spring.property ref="clientManagerService"

    */

    public void setClientManagerService(ClientManager clientManagerService) {

    this.clientManagerService = clientManagerService;

    }

    [..]


    With this tags, the ant build target outlined below will create a struts-config.xml and the necessary action-servlet.xml needed by Spring. Lets see how the target looks:

    <path id="classpath">

    <fileset dir="c:/xdoclet-1.2.2" includes="*.jar"/>
    <fileset dir="c:/j2sdkee1.3.1/lib" includes="*.jar"/>
    <fileset dir="c:/struts/lib" includes="struts.jar"/>
    </path>

    <taskdef name="springdoclet"
    classname="xdoclet.modules.spring.SpringDocletTask"
    classpathref="classpath"/>

    <taskdef name="webdoclet"
    classname="xdoclet.modules.web.WebDocletTask"
    classpathref="classpath"/>

    <target name="myTest">
    <webdoclet destDir="c:\" force="true" verbose="true">
    <fileset dir="${src.dir}">
    <include name="**/*Form.java" />
    <include name="**/*Action.java" />
    <include name="**/*Servlet.java" />
    </fileset>
    <strutsconfigxml version="1.1" validateXml="true"/>
    </webdoclet>

    <springdoclet destDir="c:\" verbose="true">
    <fileset dir="${src.dir}">
    <include name="**/*Action.java" />
    </fileset>
    <springxml destinationFile="action-servlet.xml"/>
    </springdoclet>
    </target>

    Be sure to modify the classpath definition and the destDir values of springdoclet and webdoclet to suit your needs. Right now the Spring task only searches for Actions in order to create action-servlet.xml, if you also want to create your normal service beans like ClientManagerService, you should create another springdoclet task and output things to applicationContext.xml if you like.

    But this is mostly users choice, as you know, Spring supports from one to many bean definition files and its up to you how you want to have your spring xml world.

    This will be created when you run the mentioned target:

    (action-servlet.xml)


    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE beans PUBLIC
    "-//SPRING//DTD BEAN//EN"
    "http://www.springframework.org/dtd/spring-beans.dtd">

    <beans
    default-autowire="no"
    default-lazy-init="false"
    default-dependency-check="none"
    >

    <bean
    name="clientDelete"
    class="de.logentis.versysng.action.clientmanager.ClientDeleteAction"
    >

    <property name="clientManagerService">

    <ref bean="clientManagerService"/>
    </property>

    </bean>

    <!--
    To include additional bean definitions for Spring in the generated
    application context file, add a file to your XDoclet merge directory
    called spring-beans.xml that contains the <bean></bean> markup.
    -->
    </beans>


    (struts-config.xml)


    <?xml version="1.0" encoding="UTF-8" ?>

    <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">

    <struts-config>

    <!-- ========== Data Sources Definitions =================================== -->
    <!--
    Define your Struts data sources in a file called struts-data-sources.xml and place
    it in your merge directory.
    -->

    <!-- ========== Form Bean Definitions =================================== -->
    <form-beans>

    <!--
    If you have non XDoclet forms, define them in a file called struts-forms.xml and
    place it in your merge directory.
    -->
    </form-beans>

    <!-- ========== Global Exceptions Definitions =================================== -->
    <!--
    Define your exceptions in a file called global-exceptions.xml and place
    it in your merge directory.
    -->

    <!-- ========== Global Forward Definitions =================================== -->
    <!--
    Define your forwards in a file called global-forwards.xml and place
    it in your merge directory.
    -->

    <!-- ========== Action Mapping Definitions =================================== -->
    <action-mappings>
    <action
    path="clientDelete"
    type="org.springframework.web.struts.DelegatingActionProxy"
    name="emptyform"
    scope="request"
    unknown="false"
    validate="false"
    >
    <forward
    name="back"
    path="/clientManager.html"
    redirect="true"
    />
    </action>

    <!-- If you have non XDoclet actions, define them in a file called struts-actions.xml and place it in your merge directory. -->
    </action-mappings>

    <!-- Define your Struts controller in a file called struts-controller.xml and place it in your merge directory. -->

    <!-- Define your Struts message-resources in a file called struts-message-resources.xml and place it in your merge directory. -->

    <!-- Define your Struts plugins in a file called struts-plugins.xml and place it in your merge directory. -->

    </struts-config>

    posted on 2008-03-20 09:42 jinfeng_wang 閱讀(891) 評(píng)論(1)  編輯  收藏 所屬分類: springantjavastructs

    評(píng)論

    # re: XDoclet Spring+Struts HowTo zz 2009-07-19 18:56 ddsfsdf@sfsdf.de
    Please remove this blog post or edit it in a way that my email adress is no longer in there!

    Thanks.  回復(fù)  更多評(píng)論
      

    主站蜘蛛池模板: 亚洲欧洲日韩不卡| 国产免费一区二区三区VR| 男人j进入女人j内部免费网站| 免费精品视频在线| 一区二区在线视频免费观看| 免费视频精品一区二区| 一级人做人爰a全过程免费视频| 免费一区二区三区在线视频| 手机永久免费的AV在线电影网| 一级午夜免费视频| 国产精品1024在线永久免费| 好男人资源在线WWW免费| 免费无码一区二区三区蜜桃 | 国产亚洲精品观看91在线| 亚洲五月综合缴情在线观看| 亚洲国产精品福利片在线观看| 久久精品亚洲一区二区| 久久久久亚洲精品天堂| 亚洲三级中文字幕| 亚洲人成电影网站色www| 美女黄频视频大全免费的| 国产成人精品免费大全| 97人妻精品全国免费视频| 美丽的姑娘免费观看在线播放| 99久久精品日本一区二区免费 | 久久青草免费91线频观看站街| 三年片在线观看免费观看大全动漫 | 免费观看四虎精品成人| 中国一级特黄高清免费的大片中国一级黄色片 | 国产精品亚洲天堂| 国产在线精品一区免费香蕉| 一级毛片免费毛片一级毛片免费| 国产日本一线在线观看免费| 日韩免费一区二区三区| 色噜噜AV亚洲色一区二区| 亚洲情a成黄在线观看动漫尤物| 亚洲男人的天堂久久精品| 免费毛片毛片网址| 5g影院5g天天爽永久免费影院 | 久久免费高清视频| 成人免费午夜在线观看|