`
gaosililn
  • 浏览: 73026 次
  • 性别: 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方法。

 

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

分享到:
评论

相关推荐

    ssh框架用struts2 hibernate实现图片的上传源码

    在图片上传的场景中,Struts2提供Action类来接收用户上传的图片文件,同时可以通过配置Struts2的配置文件(struts.xml)来定义Action的映射路径和处理方法,使得前端请求能够正确地路由到后端的处理逻辑。...

    SSH:Struts2.2+Hibernate3.6+Spring3.1分页示例

    SSH(Struts2、Hibernate和Spring)是一种经典的Java Web开发框架组合,用于构建高效、可扩展的企业级应用程序。本示例将重点介绍如何在Struts2.2、Hibernate3.6和Spring3.1集成环境下实现分页功能。 首先,Struts2...

    SSH(Struts,Spring,Hibernate)笔试题与面试题汇总整理.docx

    4. 可测性方面的对比:Struts1 Action 的测试需要依赖于 Web 容器,而 Struts2 Action 可以通过初始化、设置属性、调用方法来测试。 5. 封装请求参数的对比:Struts1 使用 ActionForm 对象封装用户的请求参数,而 ...

    ssh整合包含struts1和struts2

    SSH整合是Java Web开发中的一个重要概念,它是指Struts2、Spring和Hibernate这三大框架的集成。这三种框架分别在表现层、业务层和服务层提供强大的支持,共同构建出高效、灵活的企业级应用。 **Struts2** 是一个...

    ssh框架中的Struts2

    Struts2是SSH(Spring、Struts、Hibernate)框架中的核心部分,是一个强大的MVC(Model-View-Controller)...在实际开发中,你还可以根据需求引入更多Struts2的高级特性,如动态方法调用、国际化支持、文件上传下载等。

    spring+hibernate+struts2+freemarker SSH2 新闻发布系统

    总结起来,"spring+hibernate+struts2+freemarker SSH2 新闻发布系统"是一个基础的Java Web项目,展示了SSH2框架组合在实际开发中的应用。开发者可以通过学习这个小例子,理解如何整合这些技术来构建更复杂的Web应用...

    mldn 李兴华 struts2.0 源代码

    4. **动态方法调用**:Struts2支持动态方法调用,这意味着Action方法可以不预先定义,而是根据请求参数动态决定调用哪个方法,这极大地提高了代码的灵活性。 5. **配置文件与插件系统**:Struts2的配置文件如struts...

    javaEE SSH框架之Struts 实例

    5. **动态方法调用**:不同于Struts1,Struts2支持动态方法调用,即不需在配置文件中显式定义所有Action方法,可以根据URL动态解析并调用Action类的方法。 6. **OGNL(Object-Graph Navigation Language)**:...

    ssh2(struts2+spring2.5+hibernate3.3+ajax)带进度条文件上传(封装成标签)

    标题 "ssh2(struts2+spring2.5+hibernate3.3+ajax)带进度条文件上传(封装成标签)" 涉及到的是一个基于Java Web的项目,利用了Struts2、Spring2.5、Hibernate3.3和Ajax技术,实现了文件上传并带有进度条显示的功能...

    ssh框架struts2 spring hibernate

    在Struts2中,常量配置可以帮助调整框架的行为,如`struts.devMode`设置为true可以在开发阶段提供详细的错误信息,`struts.i18n.encoding`用于指定字符编码,而`struts.enable.DynamicMethodInvocation`控制是否启用...

    ssh框架之struts包

    SSH框架,全称为Spring、Struts和Hibernate,是Java Web开发中的一个经典组合。这个框架集合了Spring的依赖注入(DI)和面向切面编程(AOP),Struts的MVC设计模式,以及Hibernate的对象关系映射(ORM)工具。在本...

    ssh所需jar包struts2

    8. **开发实践**:在实际开发中,Struts2提供了丰富的拦截器和结果类型,支持动态方法调用,使得业务逻辑更加灵活。Spring可以帮助实现AOP,事务管理,以及与其他服务的集成。Hibernate则简化了数据库操作,使得...

    SSH中 struts hibernate spring 各起什么作用

    ### SSH框架:Struts、Hibernate、Spring的作用解析 #### Struts **Struts** 是一个基于MVC(Model-View-Controller)设计模式的开源框架,主要用于构建动态Web应用程序。在SSH架构中,Struts主要负责处理用户界面...

    Struts2 0+Spring3+Hibernate3 SSH Demo

    Struts2、Spring3 和 Hibernate3 是经典的 Java Web 开发框架组合,通常称为 SSH(Struts2、Spring、Hibernate)框架。这个“Struts2 0+Spring3+Hibernate3 SSH Demo”是一个示例项目,旨在展示如何整合这三个框架来...

    SSH.rar_s2sh_ssh struts2_ssh+mysql_struts2 hibernate_struts2 mys

    1. 配置Struts2:设置struts.xml配置文件,定义Action类及其结果页面。 2. 集成Spring:在web.xml中配置Spring的DispatcherServlet,创建ApplicationContext配置文件,定义Bean。 3. 整合Hibernate:配置hibernate....

    ssh_TestStruts.rar

    标题中的"ssh_TestStruts.rar"暗示了这个压缩包文件可能包含了有关...通过深入研究这个"ssh_TestStruts.rar"压缩包,你可以获得关于SSH安全连接和Struts 2框架的实践经验,这对于提升Java Web开发技能是非常有帮助的。

    jsp开发实例:Struts2+Spring3+Hibernate整合开发

    在Java Web开发中,SSH(Struts2、Spring3、Hibernate)是一种常见的企业级应用框架组合,它们各自承担着不同的职责,共同构建了一个强大的、灵活的后端开发平台。本实例旨在为新手提供一个轻量级的企业应用开发案例...

    SSH (hibernate +struts2 + spring)

    SSH是Java开发中的一种经典企业级应用框架组合,由Struts2、Spring和Hibernate三个开源框架集成而成。这个组合在Web应用程序开发中被广泛应用,尤其是对于实现MVC(Model-View-Controller)设计模式的三层架构。下面...

    ssh完整包struts2

    SSH框架是Java开发中常用的三大框架整合,包括Spring、Struts2和Hibernate。这个"ssh2"压缩包可能包含了这三个框架的部分或全部组件,便于快速搭建一个基于SSH的Web应用程序。下面将详细介绍SSH框架以及它们在实际...

Global site tag (gtag.js) - Google Analytics