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 コードを取り出す) だけで、サーブレットにアクセスできますが、フォーム パラメータが渡されません。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

0

フォーム送信メソッドは post であるため、メソッドmethod="post"でリクエスト値を取得していることを確認する必要がありますdoPost(request, response)

于 2013-11-10T16:12:23.503 に答える
0

data: { field1:field1Value } このように送信します

そしてrequest.getParameter("field1");、サーブレットでアクセスします

于 2013-11-10T16:08:06.537 に答える