2017-08-07 1 views
0

私は "post"でJavaコントローラを呼び出しています。フォームを送信して、リクエストを処理して、いくつかの属性を返すようにして、javascriptで処理できることを願っています。それが可能だ?javascript関数のポストコールからrequest.getRequestDispatcherを実行することはできますか?

マイコントローラ:JSP内

/** 
* Handles the HTTP <code>POST</code> method. 
* 
* @param request servlet request 
* @param response servlet response 
* @throws ServletException if a servlet-specific error occurs 
* @throws IOException if an I/O error occurs 
*/ 
@Override 
protected void doPost(HttpServletRequest request, HttpServletResponse response) 
     throws ServletException, IOException { 
    processRequest(request, response); 
} 
/** 
* Processes requests for both HTTP <code>GET</code> and <code>POST</code> 
* methods. 
* 
* @param request servlet request 
* @param response servlet response 
* @throws ServletException if a servlet-specific error occurs 
* @throws IOException if an I/O error occurs 
*/ 
protected void processRequest(HttpServletRequest request, HttpServletResponse response) 
     throws ServletException, IOException 
{ 
    response.setContentType("text/html;charset=UTF-8"); 
    try (PrintWriter out = response.getWriter()) 
    { 
     Respuesta r; 
     request.setAttribute("MensajeRespuesta", ""); 
     request.setAttribute("StatusRespuesta", ""); 
     ServletInputStream aaaa = request.getInputStream(); 

    if (request.getParameter("btnGuardarDiio") != null && !"".equals(request.getParameter("btnGuardarDiio"))) 
     { 
      //Code... 
      request.setAttribute("MensajeRespuesta", r.getMensaje()); 
      request.setAttribute("StatusRespuesta", r.isStatus()); 
      request.setAttribute("StatusGuardado", true); 
    request.getRequestDispatcher("/pages/maestros/crudAnimal.jsp").forward(request, response); 

     } 
    . 
    . 
    . 

マイスクリプト:

<script> 
     $('#myFormSubmit').click(function(e){ 
       $.post('crudAnimal?btnGuardarDiio=eliminar', $('#formGuardarDIIO').serialize(), 
        function(responseText,respuesta){ 
        if(respuesta = "success"){ 
        // What do I have to do so that the "response" of the controller redirects to the page and can receive the attributes? 
        } 

      }); 

      }); 
</script> 

ありがとう!

答えて

1

javascriptクライアント側では、サーバー側で設定されたすべての要求/応答属性にアクセスできなくなります。これはサーバーに属し、HTTP応答ペイロードの一部ではありません。

しかし、あなたの投稿は、あなたがjspページにそのJavaScriptコードを書いていることを示しているようです。そのjsp出力が要求ごとに再生成されている場合は、それを再生することができます。生成されたjsコードがクライアントに送り返されるようにjsp(クライアント側で処理される)上のjavaコードを介して要求属性にアクセスし、必要なものが含まれています。

here jspの仕組みに関する基本的なドキュメントがあります。私はこれがどのように動作するのかを理解したいと思うなら、それを読むことを勧めます。

関連する問題