2017-05-28 10 views
0

JSPとAjaxの例を使用して名前と合計をスローしていますが、結果のウィンドウは表示されません。これらは私のファイルですJSPサーブレットでのAjaxリクエストの処理

私はエラーを見つけられませんでしたか、彼らが思っていたか、あなたの悩みはどこから解決できましたか?

index.jspを

<%@ page language="java" contentType="text/html; charset=UTF-8" 
    pageEncoding="UTF-8"%> 

    <!DOCTYPE html> 
    <html> 
<head> 
<title>Demo Ajax</title> 

<link href="/resources/css/miPrimerCSS.css" rel="stylesheet" type="text/css"> 
<script type="text/javascript" src="resources/js/jquery.js"></script> 
<script type="text/javascript"> 



    $(document).ready(function(){ 
    $('#unHola').click(function(){ 
     var nombreCompleto = $('#nombreCompleto').val(); 
     $.ajax({ 
      type:'POST', 
      data: { 
       nombreCompleto : nombreCompleto, 
       action: 'demo1' 
      }, 
      url: 'AjaxController', 
      success: function(result){ 
       $('#resultado1').html(result); 
      } 

     }); 
    }); 

    $('#unaSuma').click(function(){ 
     var numero1 = $('#numero1').val(); 
     var numero2 = $('#numero2').val(); 
     $.ajax({ 
      type:'POST', 
      data: { 
       numero1 : numero1, 
       numero2 : numero2, 
       action: 'demo2' 
      }, 
      url:'AjaxController', 
      success : function(result){ 
       $('#resultado2').html(result); 
      } 

     }); 
    }); 



    }); // $(document).ready(function() 

</script> 
</head> 
<!-- <span id="titulo">Un Saludo</span> 
<p style="font-size: 20px">Un Hola<p> 

--> 
<body> 

    <fieldset> 
     <h1>Un Hola</h1> 
      <form> 
       Nombre <input type="text" id="nombreCompleto"><br> 
       <input type="button" value="Hola" id="unHola"><br> 
       <span id="resultado1"></span> 
      </form> 
    </fieldset> 


    <fieldset> 
      <h2>Una Suma</h2> 
      <form> 
       Numero 1 <input type="text" id="numero1"><br> 
       Numero 2 <input type="text" id="numero2"><br> 
       Resultado <span id=resultado2></span><br> 
       <input type="button" value="Suma" id="unaSuma"> 


      </form> 
    </fieldset> 



    </body> 

</html> 

AjaxController.java

package controladores; 

import java.io.IOException; 
import java.io.PrintWriter; 

import javax.servlet.ServletException; 
import javax.servlet.annotation.WebServlet; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

/** 
* Servlet implementation class AjaxController 
*/ 
@WebServlet("/AjaxController") 
public class AjaxController extends HttpServlet { 
    private static final long serialVersionUID = 1L; 

    /** 
    * @see HttpServlet#HttpServlet() 
    */ 
    public AjaxController() { 
     super(); 
     // TODO Auto-generated constructor stub 
    } 

    /** 
    * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) 
    */ 
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 

    } 



    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
     response.setContentType("text/plain "); 

     PrintWriter out = response.getWriter(); 
     String action = request.getParameter("action"); 

     if(action.equals("demo1")){ 
      String nombreCompleto = request.getParameter("nombreCompleto"); 
      out.println("Hola " + nombreCompleto); 
     } 
     else if (action.equals("demo2")){ 
      int a = Integer.parseInt(request.getParameter("numero1")); 
      int b = Integer.parseInt(request.getParameter("numero2")); 
      out.println(a + b); 
     } 



    } 

} 

例はそう

enter image description here

答えて

0

されている必要があり私のコンテキストでコードを再実行し、次の修正を行った後に期待どおりに実行します。試してみてください:

  • JQueryが正しく読み込まれていない可能性があります。このインポートURLが有効であり、本文の最後にあなたの<script></script> Sを置き、この<script src="<c:url value="/resources/js/jquery.min.js" />"></script>

  • のようなロードコンテキスト相対的なリソースのためのいくつかののJSTLのtaglibサポートを使用して考えてみて<script type="text/javascript" src="resources/js/jquery.js"></script>

  • を実行することを確認してみてください。実際にはJSファイルをボディの最後にロードするのがよい習慣です。したがって、ページのロードをブロックしません。

いくつかのより多くのヒント:あなたは、あなたが本当に任意のカスタム事柄について予定がない限り、あなたのサーブレットでコンストラクタを宣言する必要はありません

  • あなたがdoGet()を使用いけない保ついけない場合

  • それはサーブレットにあります。

+0

ありがとうございました! –

+0

"ウェブコンテンツ"からではなくURLにライブラリを直接追加して解決策を見つけました: "" –

+0

はい、静的リソースを添付する別の方法です。それはまた働き、自由にハッシュする。 –

関連する問題