`
qinjingkai
  • 浏览: 259847 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

当你的项目有100个Action 的时候

阅读更多

       如题, 或许很多开发人员都面临着这样的困惑,那就是struct-config.xml文件中有很多的配置,什么action,formbean..... 我这里说的100个action那是很小的项目了,呵呵,看得眼花缭乱,不利于模块化的开发和维护;解决的方法就是把struct-config.xml分离,也就是把里面的配置分成几个文件来写,至于怎么分那 就看你自己的原则和项目的需要了,这里不过多讨论这样的问题;分离的方法也很简单 就是在你的项目里面的web.xml文件中加多一个init-param,具体写法如下(仅保留和struts相关配置,其他元素省略):

       <servlet>
        <servlet-name>action</servlet-name>
        <servlet-class>
            org.apache.struts.action.ActionServlet
        </servlet-class>
        <init-param>
            <param-name>config</param-name>
            <param-value>/WEB-INF/struts-config.xml,/WEB-INF/struts-config_test.xml</param-value>
        </init-param>
        <!--
            <init-param>
            <param-name>chainConfig</param-name>
            <param-value>/WEB-INF/chain-config.xml</param-value>
            </init-param>
        -->
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>action</servlet-name>
        <url-pattern>*.do</url-pattern>
    </servlet-mapping>

熟悉struct1.x版本的哥们一看就明白了,其实就是在/WEB-INF/struts-config.xml后面加多一个配置文件的路径,文件路径之间用逗号分隔就ok了,至于/WEB-INF/struts-config_test.xml的写法 和truts-config.xml是完全一样的,直接把truts-config.xml的文件头copy过来,加上自己的配置就可以了!在次对http://lijun87.iteye.com/blog/339171一文作者表示 感谢

 

分享到:
评论
7 楼 独孤求爱 2009-03-26  
<!-- 产品设计业务模块 -->
<init-param>
<param-name>config/design/design</param-name>
<param-value>
/WEB-INF/config/struts-config-design-design.xml
</param-value>
</init-param>
<init-param>
<param-name>config/design/file</param-name>
<param-value>
/WEB-INF/config/struts-config-design-file.xml
</param-value>
</init-param>
<init-param>
<param-name>config/design/filemanage</param-name>
<param-value>
/WEB-INF/config/struts-config-design-filemanage.xml
</param-value>
</init-param>
6 楼 metadmin 2009-03-26  
偶见到XML文件就头晕, 很长的XML就直接卧倒。

5 楼 night_stalker 2009-03-25  
可以把注释写在java源文件里,然后写个程序或者脚本读注释,生成这坨设置
4 楼 Rooock 2009-03-25  
struts2的配置,当你有100个action时:
<!-- {1}:module name  {2}:action name  {3}method name -->
<action name="*/*/*" method="{3}" class="{2}">
        <result name="success">/jsp/{1}/{2}.jsp<.result> 
</action>

配合spring,定义action.
<bean id="xyz" class="..../XyzAction" />

前提,struts.properties中:
# 允许在action中使用斜线
struts.enable.SlashesInActionNames = true
3 楼 yhjhoo 2009-03-25  
这个不错,学习一下
2 楼 xiaojianhx 2009-03-25  
以前做过一个比较好的项目,就是用模块化,把握项目脉络很容易,
后来做个很差的,就一个struts-config.xml,里面6W多横,查找的时候很不方便,就算是用记事本看,都要响应一会,当时很烦
struts2不熟悉,有时间研究研究
1 楼 BearRui 2009-03-25  
讨厌那么多的配置文件,还是比较喜欢约定的规则,而不是全部的配置,这些配置基本上都是不用修改的。

struct 2之后好像可以直接使用注释来声明action,而不用写XML,这样也方便一些。

相关推荐

    JAVA核心技术

    当一个领域逐渐成熟的时候,自然会出现很多模式。??什么是框架???框架,即framework。其实就是某种应用的半成品,就是一组组件,供你选用完成你自己的系统。简单说就是使用别人搭好的舞台,你来做表演。而且,框架...

    ActionTitleBar.zip

    ActionBarSherlock太大了,有时候,我们并不需要完全的actionbar功能,但是,我们却要为我们不需要的功能进行买单(导致打包后的安装包增大了几百K)。 ActionBarSherlock需要一定的学习曲线。虽然,...

    Java面试宝典2010版

    9、请设计一个一百亿的计算器 10、使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变? 11、"=="和equals方法究竟有什么区别? 12、静态变量和实例变量的区别? 13、是否可以从一个static方法...

    PHP基础教程 是一个比较有价值的PHP新手教程!

    与Java和Perl不同,你不必把头埋进100多页的文档中努力学习才可以写出一个象样的程序。只要了解一些基本的语法和语言特色,你就可以开始你的PHP编码之旅了。之后你在编码过程中如果遇到了什么麻烦,还可以再去翻阅...

    超级有影响力霸气的Java面试题大全文档

     SessionBean: Stateless Session Bean 的生命周期是由容器决定的,当客户机发出请求要建立一个Bean的实例时,EJB容器不一定要创建一个新的Bean的实例供客户机调用,而是随便找一个现有的实例提供给客户机。当客户...

    springmybatis

    无论是用过的hibernate,mybatis,你都可以法相他们有一个共同点: 1. 从配置文件(通常是XML配置文件中)得到 sessionfactory. 2. 由sessionfactory 产生 session 3. 在session 中完成对数据的增删改查和事务提交等. 4....

    最新Java面试宝典pdf版

    9、请设计一个一百亿的计算器 9 10、使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变? 11 11、"=="和equals方法究竟有什么区别? 11 12、静态变量和实例变量的区别? 12 13、是否可以从一个...

    软件测试经典面试题 (超实用)

    15、如果你接到一个客户抱怨的电话,你确知无法解决他的问题,你会怎么处理? 35 16、请就软件测试人员应该具备什么样的基本素质说说你的看法。 36 17、你在五年内的个人目标和职业目标分别是什么? 36 18、你怎样...

    Java面试笔试资料大全

    9、请设计一个一百亿的计算器 9 10、使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变? 11 11、"=="和equals方法究竟有什么区别? 11 12、静态变量和实例变量的区别? 12 13、是否可以从一个...

    JAVA面试宝典2010

    9、请设计一个一百亿的计算器 9 10、使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变? 11 11、"=="和equals方法究竟有什么区别? 11 12、静态变量和实例变量的区别? 12 13、是否可以从一个...

    Java面试宝典-经典

    9、请设计一个一百亿的计算器 9 10、使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变? 11 11、"=="和equals方法究竟有什么区别? 11 12、静态变量和实例变量的区别? 12 13、是否可以从一个...

    java面试题大全(2012版)

    9、请设计一个一百亿的计算器 9 10、使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变? 11 11、"=="和equals方法究竟有什么区别? 11 12、静态变量和实例变量的区别? 12 13、是否可以从一个...

    Java面试宝典2012版

    9、请设计一个一百亿的计算器 9 10、使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变? 11 11、"=="和equals方法究竟有什么区别? 11 12、静态变量和实例变量的区别? 12 13、是否可以从一...

    Java面试宝典2012新版

    9、请设计一个一百亿的计算器 9 10、使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变? 11 11、"=="和equals方法究竟有什么区别? 11 12、静态变量和实例变量的区别? 12 13、是否可以从一个...

    ios开发记录

    //此方法可以有参数,也可以没有参数,如果没有参数系统不会给你穿参数,如果有参数,只能有一个参数,无论你所指定的参数类型是什么,系统只会把tf本身给传过去 [tf addTarget:self action:@selector(down:) ...

    java面试题

    84.8. 将一个键盘输入的数字转化成中文输出(例如:输入1234567,输出:一百二拾三万四千五百六拾七),请用java语言编一段程序实现! 114 84.9. 题目1:用1、2、2、3、4、5这六个数字,用java写一个main函数,打印出所有...

    java面试宝典2012

    9、请设计一个一百亿的计算器 10 10、使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变? 11 11、"=="和equals方法究竟有什么区别? 12 12、静态变量和实例变量的区别? 13 13、是否可以从一个...

    java 面试题 总结

    如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。 15、error和exception有什么区别? error 表示恢复不是...

Global site tag (gtag.js) - Google Analytics