struts 2の1つのフォームに複数のリクエストをコミットする(動的呼び出し方法)
2202 ワード
多くのWebアプリケーションでは、異なる作業を完了するために、1つのHTML formタグに2つ以上のsubmitボタンがある場合があります.Struts 2では、同じactionクラスで異なる方法を実行できるように構成する必要がない別の方法が提供されています(デフォルトではexecuteメソッドが実行されます).
このようにしても、実行するアクションを要求パラメータで指定する必要があります.要求パラメータ名のフォーマットは
ホームページsubmit.jspのコード:
struts.xml
このようにしても、実行するアクションを要求パラメータで指定する必要があります.要求パラメータ名のフォーマットは
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 }