在jsp页面中使用postdata

时间:2016-02-10 17:49:47

标签: jquery ajax forms jsp

我的jsp页面中有一个表单,单击ok按钮时我必须捕获POST变量并打印它们。

我认为我的解决方案是Ajax,但我无法得到它。

 <html>
 <head>
  <meta http-equiv="Content-Type" content="text/html"; charset="ISO-8859-1">
   <title>Ejemplo de carga de datos</title>
   <script src="/Scripts/jquery-1.9.1.js"></script> 

 <script>
     $(function(){ 
        $(document).ready(function () {
           $('input[type="submit"]').click(function (event) {

             var url = "datos.jsp"; // El script a dónde se realizará la petición.

    $.ajax({
       type: "POST",
       url: url,
       data: $("#form").serialize(), // Adjuntar los campos del formulario enviado.
       success: function(data)
       {

       }

     });


        });

    });
});

 </script>
</head>
    <body>


     <form name="form" id="form"  method="post" enctype="multipart/form-data" >
     <textarea cols=50 rows=10 name="texto" id="texto"></textarea>  

     <input type="submit" name="submit" value="Enviar datos" />

     </form>

 </body>
</html>

和datos.jsp:

  <%

      String texto = request.getParameter(texto);

      System.out.println(texto)

       %>

但它不起作用 我该怎么办?

我添加@Aleksey Bykov的消息。

 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

 <html>
  <head>
     <meta http-equiv="Content-Type" content="text/html"; charset="ISO-8859-1">
        <title>Ejemplo de carga de datos</title>

          <script src="https://code.jquery.com/jquery-1.10.2.js"></script>

       <script>
    $(function(){ 
       $(document).ready(function () {
       $('input[type="submit"]').click(function (event) {



            var textoVar = $('#texto').val();
            alert(textoVar);
    $.ajax({
        url: 'page.jsp',
        type: 'POST',
   dataType: 'json',
        data: {
            texto: textoVar
        },
        success: function (data) {
            //
        },

        failure: function (data) {
            //
        }



    });

});
});
});
 </script>
</head>
<body>


    <span>Sent via AJAX: <b><c:out value="${param.texto}" /></b></span>


    <form name="form" id="form"  method="post" enctype="multipart/form-data" >
     <textarea cols=50 rows=10 name="texto" id="texto"></textarea>  

     <input type="submit" name="submit" value="Enviar datos" />


    </form>

</body>

它总是打印$ {param.texto}(此行不是值),即使没有发送表单也是如此。

2 个答案:

答案 0 :(得分:0)

你必须使用Javascript吗?这可以通过向表单添加一个动作来跳过所有ajax来完成。

 <form name="form" id="form"  method="post" action="datos.jsp" >
      <textarea cols=50 rows=10 name="texto" id="texto"></textarea>  

      <input type="submit" name="submit" value="Enviar datos" />
 </form>

答案 1 :(得分:0)

您可以使用JSTL获取texto参数的值:

<c:out value="${param.texto}" />

完整示例 - 单击提交按钮后,您将在textarea顶部看到您输入的文本。

<script>
    $("#submit").click(function() {
        var textoVar = $('#texto').val();
        $.ajax({
            url: 'YourJspHere',
            type: 'POST',
            dataType: 'json',
            data: {
                texto: textoVar
            },

            success: function (data) {
                //
            },

            failure: function (data) {
                //
            }
        });
    });
</script>

<span>Sent via AJAX: <b><c:out value="${param.texto}" /></b></span>
<form name="form" id="form"  method="post">
    <textarea cols=50 rows=10 name="texto" id="texto"></textarea>
    <input type="submit" name="submit" value="Enviar datos" />
</form>

发送前:

enter image description here

发送后:

enter image description here