利用通配符,减少struts-config.xml的配置

       在一个用到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类,如果命名不好,找起来会死人的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值