簡體   English   中英

混合ajax和jsp以將數據獲取到servlet中

[英]mixing up ajax and jsp to get data into a servlet

我有一個帶有兩個文本字段(signUp和post)的jsp文件。 現在,我希望將發布文本和signUp文本調用到servlet。 通常,它與request.getParameter() ,但現在我希望使用AJAX函數將帖子文本發送到servlet,並使用常規方式將注冊文本發送到servlet(這意味着jsp文件中輸入的名稱,然后是request.getParameter) )。

是否可以將兩個部分混合在一個servlet中,因為我有這個:

<form name="form1" method="POST" action="PostWallServlet" id="form1"> 

form1是ajax代碼。 我不知道這應該如何工作。 通常在那里站着

`<form action="PostWallServlet"  method="POST" >

一切都可以通過Servlet調用。 但是,到目前為止,我還不知道如何混合使用這兩個組件。

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    PostWall pw=new PostWall();
    SimpleDateFormat df = new SimpleDateFormat("YYYY/MM/DD hh:mm:ss");
    Calendar cal = Calendar.getInstance();
    System.out.println("Current Date Time : " + df.format(cal.getTime()));

    String message = "";
    String sender = request.getParameter("sender");  
    String post = request.getParameter("message");
    String a= df.format(cal.getTime()).toString();

    pw.setSender(sender);
    pw.setPost(post);
    pw.setDate(a);
    if (pwi.addPost(pw)) {  
           message = "Student Successfuly Added";  
          } else {  
           message = "Student Adding Failed";  
          }  

    //RequestDispatcher rd = request.getRequestDispatcher("post.jsp");  
      //rd.forward(request, response);  
}




$(document).ready(function(){
  $('#Add').click(function(){
           sendData();
    });
   });
function sendData(){
   var mge = $('#newText').val();
    alert(mge);
    $.ajax({
        type: "POST",
        url: "PostWallServlet",
        data: { message : mge  }
      }).done(function( msg ) {
        alert( "Data Saved: " + msg );
      });
}
        </script>
      <form name="form1" method="GET" action="PostWallServlet" id="form1"></form>

      <table border="0" width="100%">  
            <tr>  
                <td colspan="3">  ${message}</td>  
            </tr>  


            <tr>  
                <td>Sender</td>  
                <td>:</td>  
                <td><input type="text" name="sender" value="" size=20/></td>  
            </tr> 
            <tr>  
                <td>Post</td>  
                <td>:</td>  
                <td><input type="text" name="post" value="" size=500 id="newText"/ ></td>  
            </tr>  



            <tr>  
                <td></td>  
                <td></td>  
                <td><input type="submit" value="Add" name="Add" /></td>  
            </tr>  
        </table>  

有什么辦法嗎?

在所有輸入之后,將結束標記放在表格中:

<form name="form1" method="GET" action="PostWallServlet" id="form1">
...
<td><input type="text" name="sender" value="" size=20 /></td>
...    
<td><input type="text" name="post" value="" size=500 id="newText" /></td>  
...
<td><input type="submit" value="Add" name="Add" /></td>  
...
</form>

您的輸入必須在表格內部,而不是表格之后。

另外,請確保輸入標簽的結尾不是/> />。 您在其中一個的/和>之間有一個空格。

對於Ajax部分,您需要提供輸入ID和名稱:

<td><input type="text" name="sender" id="sender" value="" size=20 /></td>

然后在您的Ajax函數中獲取數據:

 data: { sender: $('#sender').val(), post:  $('#post').val() }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM