`
gaosililn
  • 浏览: 70098 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

ssh学习:struts2的动态调方法调用

 
阅读更多

struts2的动态方法调用

       在默认的情况下,一个action类只能有一个方法execute()能被调用,这样的话,再开发当中就会需要些很多的action类,在配置文件struts.xml文件当中也要写很多的配置文件。要是能够灵活的运用struts2的动态方法调用就可以很好的解决这个问题了。

那么问题来了,怎么来实现struts2的动态方法调用呢?

实现struts2动态方法调用有三种方法:

  1. 使用感叹号
  2. 在配置文件中的action中,指定method属性
  3. 使用通配符

该怎么具体的使用这三种方法去实现struts2的动态方法调用

1.使用感叹号实现struts2动态方法访问

在使用叹号实现动态方法访问时候,一定要在配置文件struts.xml中配置一下属性

<!-- 动态加载访问 -->
	<constant name="struts.enable.DynamicMethodInvocation" value="true" />

 下面是核心代码

struts的action

<action name="dynamicAction" class="com.usc.geowind.lilin.actions.DynamicAction">
			<result name="success">
				/success.jsp
			</result>
		</action>

 action类

public class DynamicAction extends ActionSupport {
	public String execute() throws Exception {
		return super.execute();
	}

	public String add() {
		System.out.println("struts2动态访问方法:add");
		return SUCCESS;
	}
	
	public String delete(){
		System.out.println("struts2动态访问方法:delete");
		return SUCCESS;
	}
}

 从action的配置就可以看出,默认情况下请求访问action都会触发execute方法,若要动态访问add/delete方法只要在访问action链接后加上:!add或者!delete就可以了

比如访问add方法:http://localhost:8080/项目名/dynamicAction!add

2.在配置文件struts.xml中的action标签内只能属性method的是来实现struts2的动态方法访问

    在action标签中指定method的值。method的值为action类中访问的方法,改属性默认值为execute

比如访问add方法。

<!-- method的值指定访问的是哪个方法,默认值为:execute -->
		<action name="dynamicAction" class="com.usc.geowind.lilin.actions.DynamicAction"
			method="add">
			<result name="success">
				/success.jsp
			</result>
		</action>

 这样我们就可以通过指定method的值来指定action访问的具体是action累的具体哪个方法了。若是指定为通配符:*,那么所有方法均可以访问

3.使用通配符实现struts2动态方法访问

(1)method值指定为:*  ,这样均可访问

(2)使用*与{}搭配:比如:

<action name="dynamicAction_*" class="com.usc.geowind.lilin.actions.DynamicAction"
			method="{1}">
			<result name="success">
				/success.jsp
			</result>
		</action>

 这样指定method的值为第一个星号,就会访问到星号代表的action的方法中去。

当访问链接为:http://localhost:8080/项目名/dynamicAction_add  就是访问改action类下的add方法

当访问链接为:http://localhost:8080/项目名/dynamicAction_delete 就是访问delete方法

亦可以更简单的比编写写action配置,使得配置文件简单。例如:

<action name="*_*" class="com.usc.geowind.lilin.actions.{1}"
			method="{2}">
			<result name="success">
				/success.jsp
			</result>
		</action>

 使用两个星号,这样可以访问第一个星号的action类,第二个星号是访问action类的方法名

比如:http://localhost:8080/项目名/DynamicAction_add 该链接访问的是com.usc.geowind.lilin.actions.DynamicAction这一个action类下的add方法。

 

应该还有更好的技术或者方法可以达到相同的目的,有待进一步学习了解

分享到:
评论

相关推荐

    ssh2(struts2+spring2.5+hibernate3.3)自动生成模版

    {自定义的存放包}目录:4个xml文件(applicationContext-dao.xml(dao注入配置),applicationContext-service.xml(service注入配置),action-servlet.xml(action注入配置),struts-{自定义的存放包名}.xml(struts2的...

    Struts2入门教程(全新完整版)

    6.调用普通类的构造方法 25 7.集合对象初步 25 8.集合对象进阶 25 9.N语法top语法 26 10.获取Stack Context中的信息 26 11.总结$ # %的区别 27 12.总结OGNL[重点] 27 五、拦截器 28 1.概述strust2中的拦截器 28 2....

    Spring+Struts2+hibernate+Redis整合

    SSH+Redis整合

    ssh框架,strues2 异步

    ssh搭建的项目,struts2 标签 以及struts2 自带的异步

    详解SSH框架和Redis的整合

    本篇文章主要介绍了SSH框架和Redis的整合,详细的介绍了Struts+Spring+Hibernate和Redis整合,有兴趣的可以了解一下。

    ssh_crm1.rar

    ssh(客户管理系统) 开发环境:eclipse+tomcat8.5+MYSQL5.5+SVN 软件架构:Struts2 + hibernate5.x + spring4.x + mysql数据库 开发时间:2019.12-2019.1 开发人数:1人 项目描述:功能模块划分 第一个 ...

    struts2课程笔记

    struts2知识点:处理流程,基本配置,与servlet的API解耦,结果类型,通配符和动态方法的调用,类型转换,文件上传,拦截器,表单验证,国际化,OGNL表达式,UI标签,模型驱动,防止表单重复提交,项目练习知识点:...

    SSH的jar包.rar

    SSH 通常指的是 Struts2 做前端控制器,Spring 管理各层的组件,Hibernate 负责持久化层。 一个请求在Struts2框架中的处理大概分为以下几个步骤: 1、客户端初始化一个指向Servlet容器(例如Tomcat)的请求 2、这...

    SSH 项目框架搭建总结

    struts2:使用struts2的jar包 * 项目体系分层: cn.itcast.elec.containner:自定义的spring容器,用于在控制层调用操作业务层 cn.itcast.elec.dao:项目的dao层,负责连接数据库的操作 cn.itcast.elec.daomain:...

    JAVA-SSH面试题

    主要对WEB框架常面试的点做了一下整理,希望可帮助到你,下面文档的部分内容 Java---SSH(MVC) 1. 谈谈你mvc的理解 ... Struts2.0 Action可以通过初始化、设置属性、调用方法来测试,“依赖注入”也使得测试更容易。

    一个最简单的SSH框架

    一个最简单的SSH框架Struts 、 spring 、 Hibernate 在各层的作用 1 ) struts 负责 web 层 . ActionFormBean 接收网页中表单提交的数据,然后通过 Action 进行处理,再 Forward 到对应的网页。 在 struts-config...

    ognl表达式java使用案例详解(测试通过)

    2、支持类静态的方法调用和值访问,表达式的格式为@[类全名(包括包路径)]@[方法名 | 值名],例如:@java.lang.String@format('foo %s', 'bar')或@tutorial.MyConstant@APP_NAME; 3、支持赋值操作和表达式串联...

    移动ssh项目(struts+spring+hibernate+oracle)130222.rar.tar.gz

    JSP引入了被称为“JSP动作”的XML标签,用来调用内建功能。另外,可以创建JSP标签库,然后像使用标准HTML或XML标签一样使用它们。标签库能增强功能和服务器性能,而且不受跨平台问题的限制。JSP文件在运行时会被其...

    OpenID简介及与struts2_spring_hibernate框架集成

    3.2. Struts2的Action调用业务逻辑 - 19 - 3.2.1. 登录Action--OpenIDLoginAction - 19 - 3.2.2. 进入的Action—FirstPageAction - 20 - 3.3. JSP页面 - 20 - 3.4. 运行示例 - 21 - 3.4.1. 登录 - 21 - 3.4.2. ...

    SSH+Ajax+JSON省市级联效果Spring+Struts+Hibernate+Jquery

    Spring+Struts+Hibernate+Jquery(AJAX)实现的省份与城市级联效果 原理:通过ajax调用后端struts的action,将返回的JSON对象数组解析载入页面。

    最新版本的SSH2的整合和简单的增删改查

    struts2.3.16.3,spring-core-4.1.4,hibernate4.3.8 都是最新版本的整合mysql和简单的增删改查

    JQuery1.4.2+Struts2.1.8+JSON0.34+Spring2.5.6+Hibernate3.5+XFire1.2.6整合实例

    1、JSON0.34使用的是struts2附带的struts2-json-plugin-2.1.8.1.jar 2、db是mysql,名字为test,用户名root,密码空 3、com.morningstar.utility.WSUtility为调用WebService的客户端代码,在调用这个WebService返回...

    Struts2 Sping Hibernate

    本程序是一个ssh入门程序,把Struts2、Spring、Hibernate的知识综合在一起编写的程序,采用mysql作为后台数据库。本程序的用途是很适合初学者,可以了解ssh的整合的必要的配置文件,以及各个层次之间的调用是如何...

    struts2.3.4+spring3.2.0+hibernate4+hibernate_generic_dao 全注释+远程调用

    struts2.3.4+spring3.2.0+hibernate4+hibernate_generic_dao struts hibernate spring最大化使用注释 基于spring的远程调用

    详解JAVAEE——SSH三大框架整合(spring+struts2+hibernate)

    主要介绍了详解JAVAEE——SSH三大框架整合(spring+struts2+hibernate),具有一定的参考价值,感兴趣的小伙伴们可以参考一下

Global site tag (gtag.js) - Google Analytics