1

サーブレットへの AJAX 呼び出しに問題があります。ページで、同じサーブレットに対して複数の ajax 呼び出しを行いたいのですが、希望どおりに動作させることができません。

page.jsp:

...
// ボタン A が押されました

 $.ajax({
        type: "POST",
        url: "MatchingServlet",
        data: matchingData_X,
  success: function(data) {
     $('.input_A).html(data);
     }
});
...
// Button B pressed
$.ajax({
        type: "POST",
        url: "MatchingServlet",
        data: matchingData_Y,
  success: function(data) {
     $('.input_B).html(data);
     }
 });
...

マッチングサーブレット.java:

...
MethodA(...){
...
}

MethodB(...){
...
}

このプロジェクトの前に、私は Java 6 と Spring MVC に慣れていました。アノテーションを使用してこれを行うことができます。この環境では、Java 1.4.2 (すぐに Java 6 に移行) を取得しましたが、フレームワークはありません。

主な質問: これらの 2 つの ajax 呼び出しを異なるサーブレット メソッドに送るにはどうすればよいですか?

ここで見つけたすべての例は、doGet または doPost メソッドに行く ajax 呼び出しを 1 つだけ使用しています。だから、私がやりたいことをすることさえ可能であることを願っています。

前もってありがとう、WvdL

4

3 に答える 3

2

サーブレットを使用する場合は、doGetまたはdoPostメソッドのいずれかを使用する必要がありますが、これらのメソッドを呼び出すと、実装はユーザー次第になります。doPost目的の関数を呼び出すメソッドに条件を追加するだけです。条件は、サーブレットに渡されたリクエスト パラメータに基づいて適切なメソッドを呼び出します。この例では、パラメーターactionをサーブレットに渡します。サーブレットはそれを使用して、使用するメソッドを識別します。

public class MyServletextends HttpServlet {

   public void doPost(HttpServletRequest request, HttpServletResponse response)
         throws IOException, ServletException {
     if(request.getParameter("action").equals("methodA"){
        methodA();
     }else if(request.getParameter("action").equals("methodB"){
        methodB();
     }
   }

   public void methodA(){}
   public void methodB(){}
}

Javascript では、アクション パラメータを追加するだけです。

 matchingData_X.action = "methodA"; //assuming matchignData_X is an object
 $.ajax({
        type: "POST",
        url: "MatchingServlet",
        data: matchingData_X,
  success: function(data) {
     $('.input_A).html(data);
     }
});
...
// Button B pressed
matchingData_X.action = "methodB"; //assuming matchignData_X is an object
$.ajax({
        type: "POST",
        url: "MatchingServlet",
        data: matchingData_Y,
  success: function(data) {
     $('.input_B).html(data);
     }
 });
于 2013-03-18T08:58:03.303 に答える
1

parameters: 'someParam' ajax 呼び出しにセクションを追加してから、サーブレットでリクエストからパラメーターを取得してみてください 。

String param= request.getParameter("someParam");
            if (param.equals("someParam") {
                MethodA();
            }
于 2013-03-18T08:59:24.123 に答える