`
simonhoo
  • 浏览: 70377 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

利用通配符,减少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
分享到:
评论
3 楼 java_林 2011-04-14  
嗯,我们公司现在用的就是第一种。但感觉第二种更好,简单、统一!
2 楼 simonhoo 2011-04-14  
mercyblitz 写道
这个功能是什么时候开始支持的,可能是依赖的版本实现问题,不是大家不用哈!

我觉得贵公司系统设计有问题,需要那么多页面吗?

只是列个例子而已,实际项目有所不同.
1 楼 mercyblitz 2011-04-13  
这个功能是什么时候开始支持的,可能是依赖的版本实现问题,不是大家不用哈!

我觉得贵公司系统设计有问题,需要那么多页面吗?

相关推荐

    ssh 框架完全整合笔记

    1. **配置Struts的Action**:在Struts的配置文件(struts-config.xml)中定义Action,这些Action通常会依赖于Spring管理的Bean。 2. **Spring-Struts集成**:使用Spring-Struts插件(spring-struts.jar),它提供了...

    actionmaping

    在Struts1中,ActionMapping通常在struts-config.xml配置文件中定义,包含了Action的路径、对应的Action类、转发或重定向的目标等信息。而在Struts2中,ActionMapping的概念有所变化,它被集成到了Action配置中,...

    SSH和SSI等框架常用基础配置web.xml

    通过`contextConfigLocation`参数指定多个XML配置文件路径,其中`classpath*:`表示从类路径下的指定目录中加载所有符合通配符规则的XML文件。这样,Spring容器在启动时会自动加载这些配置文件并初始化。 #### 三、...

    Struts In Action

    - **struts-config.xml:** 该文件是 Struts 应用的核心配置文件,用于定义 Action、ActionForm、ActionMapping 和 ActionForward 等元素。 - **web.xml:** 除了包含 Struts 必需的 Servlet 和过滤器配置外,还...

    ssha 最新 最完整 配置信息

    #### 在web.xml中进行Struts和Spring的配置 **表格1**: web.xml中配置Spring的Context(必需设置) ```xml &lt;!-- 源代码目录下面应该有这些文件,注意,这里用到了通配符来匹配多个文件 --&gt; &lt;context-param&gt; &lt;param-...

    Struts学习笔记

    3. **必须配置的参数**:在`struts-config.xml`文件中配置Action时,`path`和`type`是必需的参数,分别指定处理请求的路径和对应的Action类。 4. **数据封装与验证**:通过`name`属性来标识数据封装,通过`validate...

    java资源之Mybatis基础入门学习笔记

    1. **搭建环境**:引入Struts2和Mybatis的jar包,配置web.xml和mybatis-config.xml,完成初始化设置。 2. **编码**:创建数据库表,封装实体类,定义DAO接口及mapper文件,注册mapper,编写Service和Action。 在...

    自己整理2011实用JAVA面试题.doc

    - 为了防止Struts配置文件`struts-config.xml`变得过于庞大,可以通过在`web.xml`中添加多个配置文件路径,或者在`struts-config.xml`中使用通配符来批量配置Action。 - `action`元素的必要属性包括`path`(定义...

    Java框架学习笔记

    在`/WEB-INF`下创建`struts-config.xml`文件(配置内容如下)。 3. 在`web.xml`中正确配置`ActionServlet`。 ```xml &lt;servlet-name&gt;action&lt;/servlet-name&gt; &lt;servlet-class&gt;org.apache.struts.action.Action...

    Struts2 开发笔记

    最后,创建相应的Action类和配置文件(struts.xml或struts-config.xml)。 三、Namespace: Namespace是Struts2中的命名空间,用来组织Action,防止Action之间的命名冲突。Namespace可以看作是Action的虚拟目录,...

    一个自己写的用struts分发实现的ssh

    在Struts 中,Action 分发是核心控制器DispatcherServlet 的工作,它接收HTTP 请求,解析请求参数,然后根据配置文件(如struts-config.xml 或struts2的struts.xml)将请求分发到相应的Action 类进行处理。...

    struts+hibernate 整合实现模糊搜索

    1. **配置Struts**: 首先,你需要在`struts-config.xml`文件中配置Action和ActionForm。ActionForm用于接收和验证用户输入,Action则处理业务逻辑,调用服务层的方法。 2. **配置Hibernate**: 在`hibernate.cfg.xml...

    Struts2.1+Spring3.0+JPA1.0 .pdf

    - 将Struts2的核心配置文件`struts.xml`复制到项目的`src`目录下。 - 配置文件示例: ```xml &lt;!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" ...

    java常用4种框架搭建过程

    4. MyBatis的搭建包括配置`mybatis-config.xml`,定义SqlSessionFactory,创建Mapper接口和Mapper XML文件,编写SQL语句。 在实际开发中,这些框架经常一起使用,Spring作为基础容器,管理SpringMVC和Hibernate或...

    精通struts技术

    - **配置文件**:包括struts-config.xml,用于定义Action映射、Form Beans、数据源等,是Struts应用的核心配置。 2. **Struts工作流程** - 用户通过浏览器发送请求到Servlet容器(如Tomcat)。 - **Action...

    图书查询_struts_cooloyj_图书模糊查询及删除_

    Struts 配置文件(通常为struts-config.xml)定义了Action类与URL的映射关系,以及ActionForm Bean的相关设置。例如,查询图书的请求可能对应一个名为`BookQueryAction`的Action,删除图书的请求对应`...

    java工程师面试必备(经个人多次面试试题出现率达60%以上)

    - Struts配置文件:struts-config.xml的组成部分和配置规则。 - Tiles框架:用于构建复杂页面布局的Struts插件。 6. **面试技巧**: - 实际项目经验:分享参与过的项目,展示解决问题的能力。 - 代码能力:准备...

    spring3.0+struts2+mybatis3.0整合

    2. **配置Struts 2**:接着,配置Struts 2的struts.xml,定义Action类和结果视图,同时设置Spring插件以利用Spring管理的Bean。 3. **配置MyBatis**:编写Mapper接口和对应的XML配置文件,定义SQL语句。在Spring配置...

Global site tag (gtag.js) - Google Analytics