struts2的动态方法调用
在默认的情况下,一个action类只能有一个方法execute()能被调用,这样的话,再开发当中就会需要些很多的action类,在配置文件struts.xml文件当中也要写很多的配置文件。要是能够灵活的运用struts2的动态方法调用就可以很好的解决这个问题了。
那么问题来了,怎么来实现struts2的动态方法调用呢?
实现struts2动态方法调用有三种方法:
- 使用感叹号
- 在配置文件中的action中,指定method属性
- 使用通配符
该怎么具体的使用这三种方法去实现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方法。
应该还有更好的技术或者方法可以达到相同的目的,有待进一步学习了解
相关推荐
在图片上传的场景中,Struts2提供Action类来接收用户上传的图片文件,同时可以通过配置Struts2的配置文件(struts.xml)来定义Action的映射路径和处理方法,使得前端请求能够正确地路由到后端的处理逻辑。...
SSH(Struts2、Hibernate和Spring)是一种经典的Java Web开发框架组合,用于构建高效、可扩展的企业级应用程序。本示例将重点介绍如何在Struts2.2、Hibernate3.6和Spring3.1集成环境下实现分页功能。 首先,Struts2...
4. 可测性方面的对比:Struts1 Action 的测试需要依赖于 Web 容器,而 Struts2 Action 可以通过初始化、设置属性、调用方法来测试。 5. 封装请求参数的对比:Struts1 使用 ActionForm 对象封装用户的请求参数,而 ...
SSH整合是Java Web开发中的一个重要概念,它是指Struts2、Spring和Hibernate这三大框架的集成。这三种框架分别在表现层、业务层和服务层提供强大的支持,共同构建出高效、灵活的企业级应用。 **Struts2** 是一个...
Struts2是SSH(Spring、Struts、Hibernate)框架中的核心部分,是一个强大的MVC(Model-View-Controller)...在实际开发中,你还可以根据需求引入更多Struts2的高级特性,如动态方法调用、国际化支持、文件上传下载等。
总结起来,"spring+hibernate+struts2+freemarker SSH2 新闻发布系统"是一个基础的Java Web项目,展示了SSH2框架组合在实际开发中的应用。开发者可以通过学习这个小例子,理解如何整合这些技术来构建更复杂的Web应用...
4. **动态方法调用**:Struts2支持动态方法调用,这意味着Action方法可以不预先定义,而是根据请求参数动态决定调用哪个方法,这极大地提高了代码的灵活性。 5. **配置文件与插件系统**:Struts2的配置文件如struts...
5. **动态方法调用**:不同于Struts1,Struts2支持动态方法调用,即不需在配置文件中显式定义所有Action方法,可以根据URL动态解析并调用Action类的方法。 6. **OGNL(Object-Graph Navigation Language)**:...
标题 "ssh2(struts2+spring2.5+hibernate3.3+ajax)带进度条文件上传(封装成标签)" 涉及到的是一个基于Java Web的项目,利用了Struts2、Spring2.5、Hibernate3.3和Ajax技术,实现了文件上传并带有进度条显示的功能...
在Struts2中,常量配置可以帮助调整框架的行为,如`struts.devMode`设置为true可以在开发阶段提供详细的错误信息,`struts.i18n.encoding`用于指定字符编码,而`struts.enable.DynamicMethodInvocation`控制是否启用...
SSH框架,全称为Spring、Struts和Hibernate,是Java Web开发中的一个经典组合。这个框架集合了Spring的依赖注入(DI)和面向切面编程(AOP),Struts的MVC设计模式,以及Hibernate的对象关系映射(ORM)工具。在本...
8. **开发实践**:在实际开发中,Struts2提供了丰富的拦截器和结果类型,支持动态方法调用,使得业务逻辑更加灵活。Spring可以帮助实现AOP,事务管理,以及与其他服务的集成。Hibernate则简化了数据库操作,使得...
### SSH框架:Struts、Hibernate、Spring的作用解析 #### Struts **Struts** 是一个基于MVC(Model-View-Controller)设计模式的开源框架,主要用于构建动态Web应用程序。在SSH架构中,Struts主要负责处理用户界面...
Struts2、Spring3 和 Hibernate3 是经典的 Java Web 开发框架组合,通常称为 SSH(Struts2、Spring、Hibernate)框架。这个“Struts2 0+Spring3+Hibernate3 SSH Demo”是一个示例项目,旨在展示如何整合这三个框架来...
1. 配置Struts2:设置struts.xml配置文件,定义Action类及其结果页面。 2. 集成Spring:在web.xml中配置Spring的DispatcherServlet,创建ApplicationContext配置文件,定义Bean。 3. 整合Hibernate:配置hibernate....
标题中的"ssh_TestStruts.rar"暗示了这个压缩包文件可能包含了有关...通过深入研究这个"ssh_TestStruts.rar"压缩包,你可以获得关于SSH安全连接和Struts 2框架的实践经验,这对于提升Java Web开发技能是非常有帮助的。
在Java Web开发中,SSH(Struts2、Spring3、Hibernate)是一种常见的企业级应用框架组合,它们各自承担着不同的职责,共同构建了一个强大的、灵活的后端开发平台。本实例旨在为新手提供一个轻量级的企业应用开发案例...
SSH是Java开发中的一种经典企业级应用框架组合,由Struts2、Spring和Hibernate三个开源框架集成而成。这个组合在Web应用程序开发中被广泛应用,尤其是对于实现MVC(Model-View-Controller)设计模式的三层架构。下面...
SSH框架是Java开发中常用的三大框架整合,包括Spring、Struts2和Hibernate。这个"ssh2"压缩包可能包含了这三个框架的部分或全部组件,便于快速搭建一个基于SSH的Web应用程序。下面将详细介绍SSH框架以及它们在实际...