一个Action对应多个Form

  Action:

 

package com.awp.test.action;

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.actions.DispatchAction;

import com.awp.test.form.FirstForm;
import com.awp.test.form.SecondForm;

/**
 * @version 1.0
 * @author awp
 * @date 2009-4-24 上午11:25:49
 * @decription 一个Action中包含多个Form 
 */
public class MultiFormTestAction extends DispatchAction {

	/**
	 * 第一个Form对应方法
	 */ 
	public ActionForward firstForm(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response){
			FirstForm	beanform	=	(FirstForm)form;
			request.setAttribute("name", beanform.getName());
			return mapping.findForward("display");
	}
	/**
	 *  第二个Form对应方法
	 */ 
	public ActionForward secondForm(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response){
			SecondForm	beanform	=	(SecondForm)form;
			request.setAttribute("name", beanform.getName());
			return mapping.findForward("display");
	}
}

 

 

Form:

package com.awp.test.form;

import org.apache.struts.action.ActionForm;

public class FirstForm extends ActionForm {

	private String	name;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

}

 

package com.awp.test.form;

import org.apache.struts.action.ActionForm;

public class SecondForm extends ActionForm {

	private String	name;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

}

  

 struts-cofing.xml

 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" 
"http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
<struts-config>
	<form-beans>
		<form-bean name="firstform" type="com.awp.test.form.FirstForm"/>
		<form-bean name="secondform" type="com.awp.test.form.SecondForm"/>
	</form-beans>
	<global-forwards>
		<forward name="display" path="/display.jsp"/>
	</global-forwards>
	<action-mappings>
		<action path="/firstpath"
				input="/first.jsp"
				name="firstform"
				parameter="method"
				scope="request"
				type="com.awp.test.action.MultiFormTestAction"/>
				
		<action path="/secondpath"
				input="/second.jsp"
				name="secondform"
				parameter="method"
				scope="request"
				type="com.awp.test.action.MultiFormTestAction"/>				
	</action-mappings>
	<message-resources parameter="MessageResources" /> 
</struts-config>

 

first.jsp

<%@ page language="java" pageEncoding="UTF-8"%>
<!doctype html public "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
  <head>
    <title>我是提交第一个FORM的页面</title>
  </head>
  <body>
   <form action="<%=request.getContextPath()%>/firstpath.do?method=firstForm" method="post">
   	<input name="name" value="" type="text"/>
   	<input name="ok" value="提交" type="submit"/>
   </form>
  </body>
</html>

 

second.jsp

<%@ page language="java" pageEncoding="UTF-8"%>
<!doctype html public "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
  <head>
    <title>我是提交第二个FORM的页面</title>
  </head>
  <body>
   <form action="<%=request.getContextPath()%>/secondpath.do?method=secondForm" method="post">
   	<input name="name" value="" type="text"/>
   	<input name="ok" value="提交" type="submit"/>
   </form>
  </body>
</html>

 

display.jsp

<%@ page language="java" pageEncoding="UTF-8"%>
<!doctype html public "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
  <head>
    <title>显示页面</title>
  </head>
  <body>
  <br />
   表单提交的内容为:${name} <br /><br />
   <a href="first.jsp">打开表单1</a><br /><br />
   <a href="second.jsp">打开表单2</a>
  </body>
</html>

 

Action必须继承DispatchAction,感觉其实一个action还是只能对应一个form

这里的方法其实是利用action的path 多个path可以指向同一个action。

你可能感兴趣的:(apache,jsp,bean,struts,Flash)