`
mzhj
  • 浏览: 227548 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Struts配置文件中action元素的parameter属性作用

阅读更多

    没有struts之前,使用servlet,最常用的是 doGet,doPost,service方法,如果有些经验的程序员会合理的使用这三个方法:如在用户发出get的请求时,将用户请求在doGet方法中处理,用户发出post请求时,将用户的请求用doPost请求处理,必要时加上service方法去处理那些在一个servlet中必须执行的请求,用户的请求大体也就这三类,但是如果细分,一个“编辑”,“删除”,“查看”等操作都是doGet的范围,当然也可以都写到serice方法中或 doPost中处理,这样为了区分这些请求,我们通常都要在程序中加入一个判断的参数,如:operate,然后在程序中判断 if operate.equals("update")....,if operate.equals("del")....,if operate.equals("view")....等,实际上这只是个简单的逻辑,如果业务更加复杂,你可能写更多的类时operate的参数,这样就造成程序中有若干if..else if...else if ..,即便你有非常好的编码规范,整齐的缩进,这个程序也相当难维护;而用到struts时,你又可能把这些参数都写到execute方法中;那么最好的方法还是将这些逻辑分开处理,如果执行“编辑”操作的时候调用“编辑”对应的方法,执行“删除”的时候调用“删除”对应的方法...将是比较理想的结果,为了实现这个应用要求,struts引入DispatchAction,这样你在struts-config.xml文件的action元素中增加 parameter属性即可实现这个功能:

    例如appfuse的配置:

<action
         path="/saveUser"
         type="org.appfuse.webapp.action.UserAction"
         name="userForm"
         scope="request"
         input="edit"
         parameter="method"
         unknown="false"
         validate="false"
       >
         <forward
           name="list"
           path="/WEB-INF/pages/userList.jsp"
           redirect="false"
         />
         <forward
           name="edit"
           path="/WEB-INF/pages/userForm.jsp"
           redirect="false"
         />
</action>

    parameter="method"这个参数就是说,在用户提交请求时取得method参数,根据method参数调用相应的方法,如 /editUser.html?method=Delete就是调用对应action中的Delete方法,这样你就可以写一个Action类处理很多的逻辑,而不是象从前那样在一个方法里面加上若干参数,或者直接建若干个action来处理。
    例如appfuse的UserAction:

package org.appfuse.webapp.action;

import ...


public final class UserAction extends BaseAction {
    
       public ActionForward add(ActionMapping mapping, ActionForm form,
                                HttpServletRequest request,
                                HttpServletResponse response)
       throws Exception {
           ...
       }

       public ActionForward cancel(ActionMapping mapping, ActionForm form,
                                   HttpServletRequest request,
                                   HttpServletResponse response)
       throws Exception {
           ...
       }

       public ActionForward delete(ActionMapping mapping, ActionForm form,
                                   HttpServletRequest request,
                                   HttpServletResponse response)
       throws Exception {
           ...
       }

       public ActionForward edit(ActionMapping mapping, ActionForm form,
                                 HttpServletRequest request,
                                 HttpServletResponse response)
       throws Exception {
           ...
       }

       public ActionForward save(ActionMapping mapping, ActionForm form,
                                 HttpServletRequest request,
                                 HttpServletResponse response)
       throws Exception {
           ...
       }

       public ActionForward search(ActionMapping mapping, ActionForm form,
                                   HttpServletRequest request,
                                   HttpServletResponse response)
       throws Exception {
           ...
       }
    
       public ActionForward unspecified(ActionMapping mapping, ActionForm form,
                                        HttpServletRequest request,
                                        HttpServletResponse response)
       throws Exception {
        
           ...
       }

       private void sendNewUserEmail(HttpServletRequest request, UserForm userForm)
       throws Exception {
           ...
       }

}

     当你没有传入method参数,或者没有符合参数的方法时,程序将执行unspecified方法;当然method只是一个逻辑名字而已,你也可以使用其他名字,如:method1,method2,go2,asdad等......


 

分享到:
评论

相关推荐

    Struts配置文件详解

    本文将深入探讨Struts配置文件的细节,包括`web.xml`和`struts-config.xml`。 首先,`web.xml`是每个Web应用程序的标准部署描述符,它是基于XML的文件,用于向Web容器(如Tomcat)提供关于应用如何运行的信息。`web...

    struts2 配置文件

    在Struts2框架的应用开发过程中,配置文件起到了至关重要的作用。Struts2主要依赖于两种基于XML的配置文件:`web.xml` 和 `struts-config.xml`(通常命名为 `struts.xml`)。本文将详细介绍这两种配置文件的作用及...

    struts 配置文件 标记库

    ### Struts配置文件详解 #### 一、Struts配置文件:`struts-config.xml` `struts-config.xml`是Struts框架的核心配置文件之一,它主要用于定义应用中的表单对象、动作映射以及转发规则等。 ##### 1. `...

    struts配置文件学习

    在Struts框架中,`struts-config.xml`是核心配置文件,它定义了应用程序的行为、数据源、表单bean、异常处理和动作映射等关键元素。以下是对`struts-config.xml`文件中的各个部分的详细解释: 1. **数据源()**: ...

    struts配置文件

    Struts配置文件的正确设置是确保应用正常运行的关键。在编写这些配置时,开发者需要仔细考虑每个元素的用途和相互关系,以实现期望的行为。同时,随着Struts版本的更新,某些配置可能发生变化,因此保持对最新文档的...

    struts 配置

    2. `&lt;init-param&gt;`:在这里,我们设置`ActionServlet`的初始化参数,特别是`config`参数,它指定了`struts-config.xml`的路径,这是Struts配置文件的位置。 3. `&lt;welcome-file-list&gt;`:不能直接将Struts的Action...

    Struts的小列子三个Action

    在这个"Struts的小列子三个Action"中,我们将深入探讨Struts框架的核心概念,特别是Action组件在其中的作用。 首先,Action是Struts框架中的关键组成部分,它是业务逻辑与请求处理的桥梁。在描述中提到的"三个...

    struts中dispatchAction用法

    2. **配置struts-config.xml**:在Struts的配置文件中,为DispatchAction创建ActionMapping,并设置`parameter`属性为请求参数,用于区分不同的业务方法。 ```xml &lt;action path="/myDispatch" type=...

    一个struts的action跳转大全

    当用户发起一个HTTP请求时,Struts框架中的`ActionServlet`接收该请求,并通过读取`struts-config.xml`配置文件来确定请求应该转发给哪个具体的`Action`类处理。如果`form`的范围是`request`,或者当前范围内不存在...

    struts1的文件上传

    配置文件中可以指定上传文件的存储路径,例如在struts-config.xml中定义一个action-mapping,设置其`parameter`属性为文件上传的目录。为了更好地管理上传的文件,可以考虑创建多级目录结构,如按照日期或用户ID来...

    Struts1配置

    在Struts1中,配置文件`struts-config.xml`起着至关重要的作用,因为它定义了请求如何被映射到特定的Action类以及Action执行后的转发规则。 在Struts1的工作流程中,当用户在视图层(通常是一个JSP页面)发送请求时...

    web_xml中ActionServlet中的属性

    1. **config**: 此属性定义了Struts配置文件的位置。默认值是`config/${prefix}/WEB-INF/strutsconfig.xml`,其中`${prefix}`是应用模块的前缀。这个文件包含了Action配置、表单Bean定义、国际化消息资源等信息。 2...

    Struts实现文件的上传下载

    然后在Struts配置文件中定义一个处理下载的动作。 5. **安全与优化**: 实现文件上传和下载时,需要注意安全性问题,比如防止恶意文件上传、检查文件类型、限制文件大小等。此外,优化方面可以考虑使用临时文件、...

    Struts1.3和config配置详解

    在Struts1.3版本中,`struts-config.xml`配置文件扮演着至关重要的角色,它是Struts框架的核心配置文件,定义了控制器的行为和应用的结构。 `struts-config.xml`配置详解: 1. **全局常量配置**:此部分用于定义...

    Struts配置详解.doc

    在Struts中,配置文件是实现其功能的关键部分,主要包括`web.xml`和`struts-config.xml`。 **web.xml配置文件详解:** `web.xml`是每个Java Web应用程序的部署描述符,它定义了应用程序的基本配置信息,如Servlet...

    Struts课堂笔记.rar--struts2的struts.properties配置文件详解

    struts自动加载的一个配置文件列表 struts.configuration.xml.reload Whether to reload the XML configuration or not 是否加载xml配置(true,false) struts.continuations.package The package containing ...

    关于MyEclipse对Struts2配置文件较检异常

    在MyEclipse这样的集成开发环境中,Struts2的配置文件`struts.xml`是至关重要的,因为它定义了应用程序的行为和路由。然而,有时用户可能会遇到MyEclipse在检查`struts.xml`时报告的异常,比如"Invalid result ...

    struts1实现的文件批量上传

    在Struts1中实现文件上传,我们需要考虑前端的HTML表单、ActionForm、Struts配置文件以及后台的Action处理。 首先,前端实现是通过一个支持多文件选择的HTML表单来完成的。表单需要设置`enctype="multipart/form-...

Global site tag (gtag.js) - Google Analytics