Struts 2中如何用一个action调用多个方法,避免每一个方法写一个action的繁琐之处
2011-07-30 17:13
477 查看
================================================这个是打开首页的一个jsp页面===================================================
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<!-- 这个方法是明确action调用那个方法 -->
<input type="button" value="添加" onclick="return window.location='add'"/>
<input type="button" value="删除" onclick="return window.location='delete'"/>
<!-- 这个是DMI动态调用action的方法 关键在 userManage!add 注解:userManage是action的name的值 !表示调用那个 比如add -->
<input type="button" value="添加_1" onclick="return window.location='userManage!add'"/>
<input type="button" value="删除_1" onclick="return window.location='userManage!delete'"/>
</body>
</html>
=============================================这个是Action==================================================================
package org.demo.struts;
import com.opensymphony.xwork2.ActionSupport;
public class UserManage extends ActionSupport {
/** 这个是第一种用method方法明确指定调用的方法
public String add() {
return SUCCESS;
}
public String delete() {
return SUCCESS;
}
*/
//下面这个这用DMI动态执行方法
public String add() {
return "add_success";
}
public String delete() {
return "delete_success";
}
}
================================================这个是struts.xml 中的配置=====================================================
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<constant name="struts.devMode" value="true"/>
<package name="UserManage" namespace="/" extends="struts-default">
<!-- 这个配置是明确告诉action调用那个方法
<action name="add" class="org.demo.struts.UserManage" method="add">
<result name="success">add.jsp</result>
</action>
<action name="delete" class="org.demo.struts.UserManage" method="delete">
<result name="success">delete.jsp</result>
</action>
-->
<!-- 这个方法是DMI动态调用那个方法 的配置 只用一个action-->
<action name="userManage" class="org.demo.struts.UserManage">
<result name="add_success">add.jsp</result>
<result name="delete_success">delete.jsp</result>
</action>
</package>
</struts>
========================================这里有两个add.jsp ,和delete.jsp页面执行 是分别执行action中的add(),delete()中的跳转页面==================
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<!-- 这个方法是明确action调用那个方法 -->
<input type="button" value="添加" onclick="return window.location='add'"/>
<input type="button" value="删除" onclick="return window.location='delete'"/>
<!-- 这个是DMI动态调用action的方法 关键在 userManage!add 注解:userManage是action的name的值 !表示调用那个 比如add -->
<input type="button" value="添加_1" onclick="return window.location='userManage!add'"/>
<input type="button" value="删除_1" onclick="return window.location='userManage!delete'"/>
</body>
</html>
=============================================这个是Action==================================================================
package org.demo.struts;
import com.opensymphony.xwork2.ActionSupport;
public class UserManage extends ActionSupport {
/** 这个是第一种用method方法明确指定调用的方法
public String add() {
return SUCCESS;
}
public String delete() {
return SUCCESS;
}
*/
//下面这个这用DMI动态执行方法
public String add() {
return "add_success";
}
public String delete() {
return "delete_success";
}
}
================================================这个是struts.xml 中的配置=====================================================
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<constant name="struts.devMode" value="true"/>
<package name="UserManage" namespace="/" extends="struts-default">
<!-- 这个配置是明确告诉action调用那个方法
<action name="add" class="org.demo.struts.UserManage" method="add">
<result name="success">add.jsp</result>
</action>
<action name="delete" class="org.demo.struts.UserManage" method="delete">
<result name="success">delete.jsp</result>
</action>
-->
<!-- 这个方法是DMI动态调用那个方法 的配置 只用一个action-->
<action name="userManage" class="org.demo.struts.UserManage">
<result name="add_success">add.jsp</result>
<result name="delete_success">delete.jsp</result>
</action>
</package>
</struts>
========================================这里有两个add.jsp ,和delete.jsp页面执行 是分别执行action中的add(),delete()中的跳转页面==================
相关文章推荐
- 一个Action如何调用两个不同的方法
- 一个Action如何调用两个不同的方法
- struts2 Action中方法不要以get和set开头,否则会被struts调用
- struts 页面调用Action的指定方法并传递参数
- 如何在一个窗体中调用另一个窗体的控件或方法
- JAVA -- 在地址栏中如何直接调用action中的方法
- struts的ui标签,theme(主题)(如何去掉fielderror actionerror actionmessage前的小点,让其按自己要求显示的5种方法)
- Struts2如何调用Action的方法
- 具体的一个实例,展示如何访问实例变量和调用成员方法
- ajax的url调用Struts 2的action方法,浏览器提示Not Found
- struts2.3.1.2 使用动态方法配置 Action,使得一个Action可以处理多个请求
- JAVA如何调用另外一个类的方法
- ASP.NET中如何在前端ASP里面调用一个后台方法并传入参数
- struts 2.5 action的多分发 ---动态方法调用
- JavaWeb:Jsp如何指定Action(多个方法)中的一个方法
- struts一个action处理多个方法
- AS、Flex如何循环调用一个对象的属性、方法
- 如何在struts中的action的execute方法()中弹出对话框
- 一个表单中有编辑和删除两个按钮分别调用后台action的不同方法
- 关于Action访问一个方法自动调用该类中的所有方法解决方案