在一个用到struts项目中,如果有大量的action,一般都需要每个action都在struts-config.xml中加以配置,这样一来,如果一个项目有上百个Action类,struts-config.xml将会很大。而且也不易维护。
现在我介绍两种我常用的方式,供大家参考。
第一种,在web.xml中注册ActionServlet时,配一个<init-param>节点,<param-name>为config,这里和以往的配置一样,重点在<param-value>这个参数值的配置,默认情况下,一般配的都是/WEB-INF/config/struts-config.xml,其是,这里可以配多个struts配置文件,中间只需用英文逗号分隔开。这样的话,可以将项目中不同的模块的Action配到同一个struts配置文件中,这样做一是方便维护,再者就是使配置文件看起来一目了然。
如下的代码片段:
...... <servlet> <servlet-name>action</servlet-name> <servlet-class> org.apache.struts.action.ActionServlet </servlet-class> <init-param> <param-name>application</param-name> <param-value>application</param-value> </init-param> <init-param> <param-name>config</param-name> <param-value>/WEB-INF/config/struts-config.xml, /WEB-INF/config/struts-product-config.xml, /WEB-INF/config/struts-user-config.xml, /WEB-INF/config/struts-payment-config.xml, /WEB-INF/config/struts-admin-config.xml, /WEB-INF/config/struts-bill-config.xml</param-value> </init-param> <init-param> <param-name>debug</param-name> <param-value>2</param-value> </init-param> <init-param> <param-name>detail</param-name> <param-value>2</param-value> </init-param> <load-on-startup>2</load-on-startup> </servlet> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> ......
第二种,这种方法,我认为最好,但是我发现也是大家用的最少的,也不知是什么原因。这种方式,不需要我个struts配置文件,只有一点需要注意,那就是所有的Action类和Form类的命名要统一。通常情况下,我是将业务功能来命名,比如说,创建类的,CreateProductAction/CreateProductForm;CreateAccountAction/CreateAccountForm等,修改类的,EditProductAction/EditProductForm;EditAccountAction/EditAccountForm等...
在web.xml中,不做任修改,只需配一个struts配置文件。重点是在这个struts配置文件内配置Action.
先看我下面给出的代码片段:
......
<action-mappings>
<action path="/Create*"
type="com.cottsoft.app.action.Create{1}Action"
name="Create{1}Form"
scope="request"
validate="false"
parameter="doaction">
<forward name="success" path="/successCreate{1}.jsp"></forward>
</action>
<action path="/Edit*"
type="com.cottsoft.app.action.Edit{1}Action"
name="Edit{1}Form"
scope="request"
validate="false"
parameter="doaction">
<forward name="success" path="/successEdit{1}.jsp"></forward>
</action>
</action-mappings>
......
以上这种方式只需要配置少量的Action,即可处理同一类型的Action动作。但是这种方式的对Action类名,Form类名,以及相关JSP页面名称的命名方式都要统一。但总的我认为这种方式还算是不错的,我平常也是这么用的。此外,统一的命名其实在一个项目中也是很有好处的,特别是当一个项目上一定规模后,上百个JSP,上面个JAVA类,如果命名不好,找起来会死人的。
本文介绍了在使用Struts框架的项目中如何优化大量Action的配置问题。提供了两种实用的方法:一是通过拆分struts-config.xml文件减少单个文件的大小并提高可维护性;二是采用通配符路径和类型映射简化配置。

2558

被折叠的 条评论
为什么被折叠?



