Struts框架之Action中多个业务方法处理

原创 2015年07月07日 15:14:26

当在一个service有不同的调用方法,但是由于action的默认方法为execute()。在Struts中可以使用三种方式进行处理。

通过URL叹号“!”参数

新建service类,其中有两个方法show()方法和deal()方法,分别在其中输出一句话:

package com.struts.service;

import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionSupport;

/**
 * @TODO TODO
 * @author Administrator
 * @date 2015年7月7日 下午4:20:11
 * @version 1.0
 */
@SuppressWarnings("serial")
public class ActionMethodService extends ActionSupport{
    public String deal(){
        System.out.println("deal()方法调用");
        return Action.SUCCESS;
    }

    public String show(){
        System.out.println("show()方法调用");
        return Action.SUCCESS;
    }
}

struts配置文件如下:

    <action name="method" class="com.struts.service.ActionMethodService">
    <result name="success">/method.jsp</result>
        </action>

访问show方法:http://localhost:8080/struts/method!show.action
访问deal方法:http://localhost:8080/struts/method!deal.action

在action标记中加入method属性

在配置文件中的action标记中加入method属性,指定调用class类中的指定方法,如下配置:

<action name="method_show" class="com.struts.service.ActionMethodService" method="show">
            <result name="success">/method.jsp</result>
</action>
<action name="method_deal" class="com.struts.service.ActionMethodService" method="deal">
            <result name="success">/method.jsp</result>
</action>

调用deal方法:http://localhost:8080/struts/method_deal.action
调用show方法:http://localhost:8080/struts/method_show.action
缺点:当一个class中有多个处理方法时,需要在配置文件中针对同一个类配置多个action,比较繁琐。下面的动态方法调用避免了此点,可以根据访问的url来动态调用不同的方法。

动态方法调用

struts2默认不允许动态方法调用,因此需要配置常量

<!-- 动态方法调用 -->
<constant name="struts.enable.DynamicMethodInvocation" value="true"/>

配置action如下:

<!-- 动态方法调用 -->
    <action name="method*" class="com.struts.service.ActionMethodService" method="{1}">
        <result name="success">/method.jsp</result>
    </action>

调用deal方法:http://localhost:8080/struts/methoddeal.action
调用show方法:http://localhost:8080/struts/methodshow.action
优点:可以根据请求的url来动态匹配从而调用不同的方法。

struts一个action处理多个方法

struts1:            struts1中一个action处理多个方法,通过让action继承DispachAction来实现            1. action继承Dispach...
  • liusong0605
  • liusong0605
  • 2013年08月19日 10:16
  • 9759

struts2中Action处理多个请求(五)

下面来介绍一下三种Action处理多请求的方法: .1,动态方法调用 2,定义逻辑Action 3,在配置文件中使用通配符 动态方法调用:一个Action中定义多个业务方法,在请求时采用“...
  • zeq9069
  • zeq9069
  • 2013年03月23日 09:29
  • 1701

Struts中1个Action中多个执行方法时,怎么调用

先看工程目录:
  • ItJavawfc
  • ItJavawfc
  • 2014年08月13日 21:39
  • 1073

【Struts2集锦】Struts2的Action中多个方法调用

以前刚做java项目的时候,就用的是SSH框架,做了两个项目都用的是SSH框架,但是里面Action多个方法调用的时候却不一样,其实不止这一个不一样,不同项目用的都叫SSH框架,但是实现方式不一样,后...
  • u010539352
  • u010539352
  • 2016年01月29日 08:29
  • 2873

struts2框架--------数据转换器( converter)

什么是转换器: Web应用程序是基于HTTP协议的,服务器可以的接收到的来自客户端的数据只能是字符串或字符串数组 同样,客户端接收到来自服务器端的数据各种各样,但是也只能用字符串形式显示 struts...
  • u012176984
  • u012176984
  • 2015年02月18日 00:24
  • 392

Struts2之动态方法调用(优点:调用同一个action中的多个方法不需要在配置文件中写多个指向相同action类的的action节点只需要一个action节点就行)

在表单action值里指定所调用的action中的哪个方法而不是借助配置文件action节点的method属性 1 UserAction类 package org.action; import j...
  • u012871207
  • u012871207
  • 2015年02月02日 13:08
  • 1347

Struts2一个Action内包含多个请求处理方法(三种方式)

Struts2一个Action内包含多个请求处理方法的处理(三种方式) Struts1提供了DispatchAction,从而允许一个Action内包含多个请求处理方法。Struts2也提供...
  • u010802573
  • u010802573
  • 2013年06月19日 11:54
  • 1920

SSH:Struts2框架(Action的配置)

Struts2的核心功能是action,对于开发人员来说,使用Struts2主要就是编写action,action类通常都要实现com.opensymphony.xwork2.Action接口,并实现...
  • qq_27550755
  • qq_27550755
  • 2015年11月25日 15:49
  • 1814

如何写一个struts2框架中的Action

三种方式: 1.只需要类中有一个固定的方法: ? 1 2 3      public String execute(){...
  • qq_22575239
  • qq_22575239
  • 2017年03月08日 13:52
  • 447

Struts2调用Action的两种方法以及参数处理

Struts2调用Action的两种方法以及参数处理
  • code_learner_D
  • code_learner_D
  • 2016年10月02日 01:19
  • 832
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Struts框架之Action中多个业务方法处理
举报原因:
原因补充:

(最多只允许输入30个字)