У меня есть форма в 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");
}
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
Поскольку метод отправки формы - post method="post"
, вам нужно убедиться, что вы выбираете значения запроса в методе doPost(request, response)
data: { field1:field1Value }
отправить как это
и затем request.getParameter("field1");
в сервлете