我在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请求不起作用。有人能指出我应该如何正确地做到这一点。
servlet代码是:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
logger.info("Inside the post function");
logger.info(request.getParameter("data");
}
答案 0 :(得分: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");
我正在与Servlet教程共享小型Ajax,这可能会帮助您解决更多问题...... Download Link- AJAX Servlet Tutorial
答案 1 :(得分:0)
data: { field1:field1Value }
像这样发送
然后在servlet中访问request.getParameter("field1");
答案 2 :(得分:0)
由于表单提交方法是method="post"
,您需要确保在doPost(request, response)
方法