0

我在 JSP 中有一个表单,方式如下:

<form id="provision-field" method="post" action="${pageContext.request.contextPath}/myServlet">

    <fieldset>
        <ol class="fields">

            <li>
                <label for="field1">field1</label>
                <input type="text" id="field1" "
                        value="<%= field1 %>"

                        />
                <span class="description">
                    <span class="optional">Optional</span>
                </span>
            </li>
        </ol>
    </fieldset>
    <div class="actions">
        <button type="submit" name="Submit">
            Submit form
        </button>
        <a href="" class="close-dialog">Cancel</a>
    </div>
</form>

单击提交按钮时,我有一个 js 片段执行以下操作

var field = document.getElementById("field1").value;   

 $.ajax({
                url: '${pageContext.request.contextPath}/myServlet'
                type: 'POST',
                data: field,
                dataType: "html",
                success: function(html) {

                  alert("Success");
                },
                error: function(error){
                alert("ERROR");
                }
                });

当我只使用表单元素时(即取出js代码),我可以访问我的servlet,但我的表单参数都没有传递。当我尝试使用 js 代码时,ajax 请求不起作用。有人可以指出我应该如何正确地做到这一点。

小服务程序代码是:

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
       logger.info("Inside the post function");
        logger.info(request.getParameter("data");

    }
4

3 回答 3

1
    var field = document.getElementById("field1").value;   

    $.ajax({
        url: '${pageContext.request.contextPath}/myServlet'
        type: 'POST',
        data: {
            data :field
        },
        dataType: "html",
        success: function(html) {

          alert("Success");
        },
        error: function(error){
        alert("ERROR");
        }
    });

doPost 方法中的 servelt 内部代码:假设您对 HttpServlet 有基本的了解...

    request.getParameter("data");

我正在分享小型 Ajax 与 Servlet 教程,它可能会帮助您解决更多问题...下载链接 - AJAX Servlet 教程

于 2013-11-10T16:14:01.983 回答
0

data: { field1:field1Value } 像这样发送

然后request.getParameter("field1");在servlet中访问

于 2013-11-10T16:08:06.537 回答
0

由于表单提交方法是 post method="post",您需要确保在doPost(request, response)方法中获取请求值

于 2013-11-10T16:12:23.503 回答