Struts2的动态方法调用
在struts2中,可以通过两种方式调用Action类的除了execute之外的其他方法。而这种方法是struts框架直接支持的。
方式1:struts.xml中的action的属性为method
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<!--
<constant name="struts.enable.DynamicMethodInvocation" value="false" />
<constant name="struts.devMode" value="false" />
<package name="default" namespace="/" extends="struts-default">
<default-action-ref name="index" />
<global-results>
<result name="error">/error.jsp</result>
</global-results>
<global-exception-mappings>
<exception-mapping exception="java.lang.Exception" result="error"/>
</global-exception-mappings>
<action name="index">
<result type="redirectAction">
<param name="actionName">HelloWorld</param>
<param name="namespace">/example</param>
</result>
</action>
</package>
<include file="example.xml"/>
-->
<!-- Add packages here -->
<!--
<package name="default" namespace="/" extends="struts-default">
<action name="helloworld">
<result>/helloworld.jsp</result>
</action>
</package>
-->
<!-- 使用Action 的三种方式,在企业最常用的是继承ActionSupport类 -->
<package name="default" namespace="/action" extends="struts-default">
<action name="test01" class="com.demo.action.DemoAction01">
<result name="success">/action01.jsp</result>
</action>
<action name="test02" class="com.demo.action.DemoAction02">
<result name="success">/action02.jsp</result>
</action>
<action name="test03" class="com.demo.action.DemoAction03">
<result name="success">/action03.jsp</result>
</action>
</package>
<!-- 注意:在struts配置中 package包的name属性名称不能相同 -->
<package name="dmi_pack" namespace="/dmi" extends="struts-default">
<action name="add" class="com.demo.action.DMIActionDemo" method="add">
<result name="add">/add.jsp</result>
</action>
<action name="edit" class="com.demo.action.DMIActionDemo" method="edit">
<result>/edit.jsp</result>
</action>
<action name="delete" class="com.demo.action.DMIActionDemo" method="delete">
<result>/delete.jsp</result>
</action>
<action name="query" class="com.demo.action.DMIActionDemo" method="query">
<result>/query.jsp</result>
</action>
</package>
<!-- 动态方法调用 -->
<package name="dmi_method" namespace="/dmi_method" extends="struts-default">
<action name="dmiMethod" class="com.demo.action.DMIAction" >
<result name="success">/result.jsp</result>
</action>
</package>
</struts>
package com.demo.action;
import com.opensymphony.xwork2.ActionSupport;
public class DMIActionDemo extends ActionSupport {
/**
*
*/
private static final long serialVersionUID = 1L;
public String add() {
System.out.println("===========添加操作=========");
System.out.println("===========添加数据=========");
return "add";
}
public String edit() {
System.out.println("===========编辑操作=========");
System.out.println("===========编辑数据=========");
return SUCCESS;
}
public String delete() {
System.out.println("===========删除操作=========");
System.out.println("===========删除数据=========");
return SUCCESS;
}
public String query() {
System.out.println("===========查询操作=========");
System.out.println("===========查询数据=========");
return SUCCESS;
}
}
方式2:动态调用方法(DMI)
不需要进行struts的配置,直接在视图页面中通过标识符号制定了要调用的方法。标识符号为"!"号。
注意:/名称空间/action名称!操作方法.action
<a href="/dmi_method/dmiMethod!add.action">添加操作</a>
<a href="/dmi_method/dmiMethod!edit.action">修改操作</a>
<a href="/dmi_method/dmiMethod!delete.action">删除操作</a>
<a href="/dmi_method/dmiMethod!query.action">查询操作</a>
<!-- 动态方法调用 -->
<package name="dmi_method" namespace="/dmi_method" extends="struts-default">
<action name="dmiMethod" class="com.demo.action.DMIAction" >
<result name="success">/result.jsp</result>
</action>
</package>
package com.demo.action;
import com.opensymphony.xwork2.ActionSupport;
public class DMIAction extends ActionSupport{
public String add() {
System.out.println("=======DMI 添加操作");
return SUCCESS;
}
public String edit() {
System.out.println("=======DMI 编辑操作");
return SUCCESS;
}
public String delete() {
System.out.println("=======DMI 删除操作");
return SUCCESS;
}
public String query() {
System.out.println("=======DMI 查询操作");
return SUCCESS;
}
}
分享到:
相关推荐
Struts2动态方法调用 包括 1.js方法调用 2.普通的表单提交调用 3.通配符
NULL 博文链接:https://takeme.iteye.com/blog/1631525
NULL 博文链接:https://cdxs2.iteye.com/blog/1925232
Struts2_动态方法调用,使用struts2架构的动态方法进行资源调用
主要介绍了详解Struts2动态方法调用,涉及调用方法的代码,具有一定参考价值,需要的朋友可以了解下。
struts 1框架的动态调用也许你会,但是struts2 的动态调用更经典,这个文档让你玩转struts 2 动态调用.......
struts动态访问调用之一,采用method属性,同一个Action内的不同方法来响应用户请求
struts2动态调用之通配符,相当于是改进的method动态调用方法,减少对同一action不同method的多次配置
struts2利用通配符调用同一个Action里面不同的方法,在struts.xml配置文件中将请求方法的不相同部分抽象成“*".
struts2中动态方法的调用,如何实现动态方法调用
本文档主要介绍了struts2中API耦合的三种方法以及动态方法调用(Dynamic Method Invoked)的两种方法,希望对你有所帮助,谢谢!
利用Struts 2框架创建一个web项目chap2_e22,实现用户登录过程。具体要求是在loginAction类中分别用login()和registered()处理用户登录和注册的过程,分别创建login.jsp和register.jsp两个页面实现登录和注册的...
带有分页,分页跳转,部门员工表的CRUD,hibernate注解方式操作实体,struts2动态方法调用
Struts2中直接和间接访问ServletAPI以及动态方法调用之感叹号
Struts2调用EJB异常项目包,出现的问题以及解决方案参见EJBStruts.zip中的说明.txt 以及博客 http://blog.csdn.net/icecream0/article/details/7167853
struts2实验一:动态方法调用+请求参数的获取+简单的表单数据验证
主要介绍了struts中动态方法调用使用通配符的相关资料,非常不错,具有参考借鉴价值,感兴趣的朋友一起看看吧
参考博文:http://blog.csdn.net/u011638419/article/details/41773411
Webservice+spring+struts小例子,简单方法调用
如题,Struts2登陆+输入验证+动态调用实例,使用MyEclipse导入直接就可以运行