Значения формы JSP, переданные сервлету

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");

    }
  • 0
    Пожалуйста, поделитесь кодом сервлета тоже.
Теги:
jsp
servlets

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");
        }
    });

Внутри servelt следующий код в методе doPost: Предполагая, что у вас есть первичные знания HttpServlet...

    request.getParameter("data");

Я использую небольшой Ajax с учебником Servlet, который может помочь вам в дальнейшей проблеме... Загрузить Link- AJAX Servlet Tutorial

  • 1
    Привет, я попробовал это, но это не работает.
  • 0
    Можете ли вы поделиться своим кодом сервлета? .. Попробуйте оповещение (поле); ......... перед выполнением ajax и проверьте это значение, отображаемое в окне оповещения или нет ... Пожалуйста, также удалите <form> ... </ from>, если вы делая AJAX, чем вы не должны использовать тег формы ...
Показать ещё 2 комментария
0

Поскольку метод отправки формы - post method="post", вам нужно убедиться, что вы выбираете значения запроса в методе doPost(request, response)

0

data: { field1:field1Value } отправить как это

и затем request.getParameter("field1"); в сервлете

Ещё вопросы

Сообщество Overcoder
Наверх
Меню