struts 2の1つのフォームに複数のリクエストをコミットする(動的呼び出し方法)


多くのWebアプリケーションでは、異なる作業を完了するために、1つのHTML formタグに2つ以上のsubmitボタンがある場合があります.Struts 2では、同じactionクラスで異なる方法を実行できるように構成する必要がない別の方法が提供されています(デフォルトではexecuteメソッドが実行されます).
このようにしても、実行するアクションを要求パラメータで指定する必要があります.要求パラメータ名のフォーマットは
 action!method.action

ホームページsubmit.jspのコード:



   
My JSP 'hello.jsp' starting page


    
submitActionコードは次のとおりです.
package action;

import javax.servlet.http.*;
import com.opensymphony.xwork2.ActionSupport;
import org.apache.struts2.interceptor.*;

public class MoreSubmitAction extends ActionSupport implements
        ServletRequestAware {
    private String msg;
    private javax.servlet.http.HttpServletRequest request;

    //   HttpServletRequest  
    public void setServletRequest(HttpServletRequest request) {
        this.request = request;
    }

    //   save submit     
    public String save() throws Exception {
        request.setAttribute("result", "    [" + msg + "]");
        return "save";
    }

    //   print submit     
    public String print() throws Exception {
        request.setAttribute("result", "    [" + msg + "]");
        return "print";
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }
}

struts.xml




    
        
             /result.jsp 
            /result.jsp
        
     
result.jsp:





    


${result }