Struts1.2中的Dispatch Action(给action传参数)配置
2010-03-30 22:00
351 查看
版本:eclipse 3.3,myeclipse 6.0,tomcat 6.0
在myeclipse中新建项目StrutsDemo,导入Struts1.2属性
在com.shiryu.action包中新建
TestAction.java
package com.shiryu.action;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.DynaActionForm;
import org.apache.struts.actions.LookupDispatchAction;
public class TestAction extends LookupDispatchAction
{
public ActionForward login(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse
response) {
DynaActionForm registerForm = (DynaActionForm) form;// TODO
Auto-generated method stub
request.setAttribute("name", "login");
System.out.print("login");
return mapping.findForward("wel");
}
public ActionForward register(ActionMapping mapping, ActionForm
form,
HttpServletRequest request, HttpServletResponse
response) {
DynaActionForm registerForm = (DynaActionForm) form;// TODO
Auto-generated method stub
request.setAttribute("name", "register");
System.out.print("reg");
return mapping.findForward("wel");
}
protected Map getKeyMethodMap() {
// TODO Auto-generated method stub
Map map=new HashMap();
map.put("testForm.login", "login");
map.put("testForm.register", "register");
return map;
}
}
配置web.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
配置struts-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD
Struts Configuration 1.2//EN"
"http://struts.apache.org/dtds/struts-config_1_2.dtd">
<struts-config>
<data-sources />
<form-beans >
<form-bean name="testForm"
type="org.apache.struts.action.DynaActionForm"/>
</form-beans>
<global-exceptions />
<global-forwards>
<forward name="wel" path="/wel.jsp" />
<forward name="err" path="/err.jsp" />
</global-forwards>
<action-mappings >
<action
input="/index.jsp"
path="/index"
type="com.shiryu.action.TestAction"
parameter ="testForm"
name="testForm">
</action>
</action-mappings>
<message-resources parameter="com.shiryu.ApplicationResources" />
</struts-config>
新建index.jsp
<%@ page language="java" import="java.util.*"
pageEncoding="utf-8"%>
<%@ taglib uri="http://struts.apache.org/tags-bean"
prefix="bean"%>
<%@ taglib uri="http://struts.apache.org/tags-html"
prefix="html"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body>
<html:link action="/index?testForm=login">
link
</html:link>
</body>
</html>
新建wel.jsp
<%@ page language="java" import="java.util.*"
pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body>
<%out.print(request.getAttribute("name")); %>
</body>
</html>
有三種方式可以設定 dispatch 到哪個 method 上:
参考:blog.chinajavaworld.com/entry/2072/0/
(1) submit button 法,直接寫在 submit 的 property 上:
*
*
*
* 注意 property 裡面的值是 'dispatch=xxxx' 記得要寫等號與 method 名稱,而且大小寫要對,不能空白。當網頁按下
"儲存"
* 時,則會執行 /some/work.do 的 save(...) 的 method。 如果按下 "刪除" 則執行 delete(...),
*
* 建議 -- 這種寫法通常是用在一個 Action 有多個 dispatch method,而每個 method 都共用同個
ActionForm
*
* (2) URL 法,接在 URL 後面:
*
*
*
* 建議 -- 通常用在不需要 ActionForm 的 Action,或者是要將 submit button 法寫成 url 時使用。
*
* (3) struts-config 法,直接寫死在 parameter='dispatch=foo' 上
*
*
*
* 建議 -- 這種寫法通常是為了讓 Action 中每個 dispatch method 使用不同的 ActionForm。一旦寫死在
* struts-config 裡,該 mapping 的 path 就不能與 URL 法 或是 submit button 法同時使用。
*
* 最後請注意同一個 request 上,URL 法不能與 submit button 法同時使用 (但可以連續 forward):
在myeclipse中新建项目StrutsDemo,导入Struts1.2属性
在com.shiryu.action包中新建
TestAction.java
package com.shiryu.action;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.DynaActionForm;
import org.apache.struts.actions.LookupDispatchAction;
public class TestAction extends LookupDispatchAction
{
public ActionForward login(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse
response) {
DynaActionForm registerForm = (DynaActionForm) form;// TODO
Auto-generated method stub
request.setAttribute("name", "login");
System.out.print("login");
return mapping.findForward("wel");
}
public ActionForward register(ActionMapping mapping, ActionForm
form,
HttpServletRequest request, HttpServletResponse
response) {
DynaActionForm registerForm = (DynaActionForm) form;// TODO
Auto-generated method stub
request.setAttribute("name", "register");
System.out.print("reg");
return mapping.findForward("wel");
}
protected Map getKeyMethodMap() {
// TODO Auto-generated method stub
Map map=new HashMap();
map.put("testForm.login", "login");
map.put("testForm.register", "register");
return map;
}
}
配置web.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
配置struts-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD
Struts Configuration 1.2//EN"
"http://struts.apache.org/dtds/struts-config_1_2.dtd">
<struts-config>
<data-sources />
<form-beans >
<form-bean name="testForm"
type="org.apache.struts.action.DynaActionForm"/>
</form-beans>
<global-exceptions />
<global-forwards>
<forward name="wel" path="/wel.jsp" />
<forward name="err" path="/err.jsp" />
</global-forwards>
<action-mappings >
<action
input="/index.jsp"
path="/index"
type="com.shiryu.action.TestAction"
parameter ="testForm"
name="testForm">
</action>
</action-mappings>
<message-resources parameter="com.shiryu.ApplicationResources" />
</struts-config>
新建index.jsp
<%@ page language="java" import="java.util.*"
pageEncoding="utf-8"%>
<%@ taglib uri="http://struts.apache.org/tags-bean"
prefix="bean"%>
<%@ taglib uri="http://struts.apache.org/tags-html"
prefix="html"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body>
<html:link action="/index?testForm=login">
link
</html:link>
</body>
</html>
新建wel.jsp
<%@ page language="java" import="java.util.*"
pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body>
<%out.print(request.getAttribute("name")); %>
</body>
</html>
有三種方式可以設定 dispatch 到哪個 method 上:
参考:blog.chinajavaworld.com/entry/2072/0/
(1) submit button 法,直接寫在 submit 的 property 上:
*
*
* <html:form action="/some/work"> * .... some thing .... * * <html:submit property="dispatch=save" value="儲存"/> * <html:submit property="dispatch=delete" value="刪除"/> * </html:form> * * 或者如果需要 i18n 的話,可以用 bean:message: * * <html:form action="/some/work"> * <html:submit property="dispatch=save" > * <bean:message key="button.save" /> * </html:submit> * <html:submit property="dispatch=delete" > * <bean:message key="button.delete" /> * </html:submit> * </html:form> *
*
* 注意 property 裡面的值是 'dispatch=xxxx' 記得要寫等號與 method 名稱,而且大小寫要對,不能空白。當網頁按下
"儲存"
* 時,則會執行 /some/work.do 的 save(...) 的 method。 如果按下 "刪除" 則執行 delete(...),
*
* 建議 -- 這種寫法通常是用在一個 Action 有多個 dispatch method,而每個 method 都共用同個
ActionForm
*
* (2) URL 法,接在 URL 後面:
*
*
* <html:form action="/some/work?dispatch=save"> * 或是用 link 也可以 * <html:link action="/some/work?dispatch=save" /> *
*
* 建議 -- 通常用在不需要 ActionForm 的 Action,或者是要將 submit button 法寫成 url 時使用。
*
* (3) struts-config 法,直接寫死在 parameter='dispatch=foo' 上
*
*
* <action * path="/saveOrder" * name="SaveOrderForm" * type="antar.order.web.OrderDispatchAction" * parameter="dispatch=save" > * </action> * <action * path="/deleteOrder" * name="DeleteOrderForm" * type="antar.order.web.OrderDispatchAction" * parameter="dispatch=delete" > * </action> *
*
* 建議 -- 這種寫法通常是為了讓 Action 中每個 dispatch method 使用不同的 ActionForm。一旦寫死在
* struts-config 裡,該 mapping 的 path 就不能與 URL 法 或是 submit button 法同時使用。
*
* 最後請注意同一個 request 上,URL 法不能與 submit button 法同時使用 (但可以連續 forward):
相关文章推荐
- [转]struts1.2的action参数配置
- struts1.2的action参数配置
- 【转】struts1.2的action参数配置
- 关于Struts1.2配置文件的Action访问路径相关问题
- Struts1.2中的action配置
- Struts1.2中的action配置(使用DynaActionForm)
- Struts1.2中的MappingDispatchAction 配置
- 如何从action传递参数到struts配置文件
- Struts1.2中的MappingDispatchAction 配置
- struts.xml属性配置,action属性,通配符,action接受参数(二)
- Struts2 两个Action 动态传参数,在struts.xml中配置
- Struts2 用action属性接收参数
- 【Struts1.2总结系列】struts-config.xml配置
- MyEclipse6.0.0 GA里配置struts1.2+hibernate3.0+spring1.2异常
- struts配置文件path属性传多个参数时注意点
- [Struts2]配置之Result/include多配置struts.xml文件/Action
- Action里result类型Stream的参数配置
- Struts中Action三种接收参数的方式?
- struts2.0传递中文参数,action重定向传中文参数,redirectAction传中文参数
- struts中 如何实现jsp和action互相发送参数