1

$save$ のような 3 つのボタンが必要な jsp ページを作成して、実行したプロセスを保存し、削除し、実行した内容を表示したいと考えています。

i tried as :
<form action="go_save" method="post"> // how to go_view.jsp, go_delete.jsp
   <input type="submit" name="submit" value="SUBMIT">


code :
      <%@page contentType="text/html" pageEncoding="UTF-8"%>
     <!DOCTYPE html>
     <html>
     <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>JSP Page</title>
    </head>
     <body>
     <h1>Hello World!</h1>
     <form action="go.jsp" method="post" >
         name<input type="text" name="name">
         age<input type="text" name="age">
         <input type="button" value="Save" name="Save" 
         onclick="document.forms[0].action = 'go_save.jsp'; return true;" />
          <input type="button" value="view" name="view" 
          onclick="document.forms[0].action = 'go_view.jsp'; return true;" />
       </form>
   </body>
</html>

しかし、ここでは、ページが go_view、go_save などの特定のページにリダイレクトされていません。これらの値の name 、 age を go_view 、 go_save でキャッチしたい。しかし、どのように?

4

2 に答える 2

2

このようなことができます... onclickイベントがあります

<button type="button" onclick="location = 'go_save.jsp'">Save</button>
<button type="button" onclick="location = 'go_view.jsp'">Save</button>

「action="go_save"」を削除します

于 2013-08-02T05:55:39.753 に答える
0

このジョブは、おそらく JSP ではなくサーブレットのコントローラーで行う必要があります。

サーブレットを作成し(たとえば、RedirectServlet名前を付けることができます)、doPostメソッドで、クリックされたボタンに基づいて、関連するJSPページにリダイレクトします。各ボタンにこのタスクの名前を付けることができます。

public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    if (request.getParameter("GoSave") != null) {
        request.getRequestDispatcher("/go_save.jsp").forward(request, response);

    } else if (request.getParameter("GoDelete") != null) {
        request.getRequestDispatcher("/go_delete.jsp").forward(request, response);

    }  else if (request.getParameter("GoView") != null) {
        request.getRequestDispatcher("/go_view.jsp").forward(request, response);
    }
}

ここで、フォームから、jsp ページにリダイレクトする代わりに、次のサーブレットにリダイレクトします。

<form action="redirectServlet" method="post"> 
   name<input type="text" name="name">
   age<input type="text" name="age">

   <input type="submit" name="GoView" value="SUBMIT">
   <input type="submit" name="GoDelete" value="SUBMIT">
   <input type="submit" name="GoSave" value="SUBMIT">
</form>

これで、 を使用して、サーブレットがリクエストをリダイレクトしたそれぞれの JSP ページの値nameを取得できます。agerequest.getParameter("name")

または、次のようなパターンを使用することもできます-MVCのフロントコントローラーパターン

于 2013-08-02T06:50:37.097 に答える