一个form中不同旋钮调用同一个Action中的不同方法

一个form中不同按钮调用同一个Action中的不同方法

在基本Struts框架下建立一张JSP页面,一个Action类,并且在Struts.xml文件中配置这个Action的路径。

测试页面:Test.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
   <head>
   </head>
   <body>

      <font color="red">${result}</font>
      <s:form action="test.do">
          <s:submit name="method1" method="method1" value="方法1"></s:submit>
          <s:submit name="method2" method="method2" value="方法2"></s:submit>
      </s:form>
 </body>
</html>  


Action类:TestAction.java

package Struts.action;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts2.interceptor.ServletRequestAware;

import com.opensymphony.xwork2.ActionSupport;

@SuppressWarnings("serial")
public class TestAction extends ActionSupport implements ServletRequestAware{
 
 private HttpServletRequest request;
 
 public void setServletRequest(HttpServletRequest request){
  this.request = request;
 }
 
 public String method1() throws Exception{
  request.setAttribute("result","method1");
  return "test";
 }
 
 public String method2() throws Exception{
  request.setAttribute("result", "method2");
  return "test";
 }

} 

 


Struts.xml文件中的Action配置为:

<?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>

<package name="action" extends="struts-default">

  <action name="test" class="Struts.action.TestAction">
      <result name="test">Test.jsp</result>
  </action>

 </package>

</struts> 
 

 

通过不同的按钮对应不同的method,访问同一个Action中不同的方法