Java 如何使用servlet+;AJAX
我正在尝试学习jsp+servlet,如果我基本上做到了(jsp将数据发送到servlet,然后servlet从db获取数据并设置属性并转发到新页面),那么一切都会顺利进行,但是当我尝试在不重新加载页面的情况下更新某些内容时,出现了问题(使用ajax将数据发送到servlet并转发到jsp文件,我使用jquery加载特定的内容),这并没有改变内容 ServletJava 如何使用servlet+;AJAX,java,jquery,ajax,jsp,servlets,Java,Jquery,Ajax,Jsp,Servlets,我正在尝试学习jsp+servlet,如果我基本上做到了(jsp将数据发送到servlet,然后servlet从db获取数据并设置属性并转发到新页面),那么一切都会顺利进行,但是当我尝试在不重新加载页面的情况下更新某些内容时,出现了问题(使用ajax将数据发送到servlet并转发到jsp文件,我使用jquery加载特定的内容),这并没有改变内容 Servlet protected void processRequest(HttpServletRequest request, HttpServl
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
try {
/* TODO output your page here. You may use following sample code. */
int id = Integer.parseInt(request.getParameter("id"));
Database db = new Database();
ProductTable productTable = new ProductTable(db);
Product product = productTable.findByID(id);
db.close();
request.setAttribute("productDetail", product);
request.getRequestDispatcher("/view/backend/selectProduct.jsp").forward(request, response);
} finally {
out.close();
}
}
JSP模式
<!-- language: html -->
<div class="modal fade" id="modalEditProduct" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title" id="myModalLabel">Modal title</h4>
</div>
<div class="modal-body">
<div class="tableSelectProduct">
<%@include file="selectProduct.jsp" %>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
<button type="button" class="btn btn-primary" id="btnOK">Save</button>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal -->
选择product.jsp(要通过不重新加载主页更新此内容)
照片
*(必选)
标题
*(必选)
ISBN
*(必选)
按类型
变更类别
作者
*(必选)
细节
${productDetail.detail}
*(必选)
价格
*(必选)
股票
*(必选)
看起来您缺少success属性
$.ajax({
url: "/BookStore/SelectProduct",
data: {"id": id},
type: 'POST',
cache: false,
success: function(response) {
// Add in what to do when ajax call is successful
},
error: function(xhr, ajaxOptions, thrownError) {
alert('error');
}
为了找出ajax中的真正问题,最好使用下面的ajax调用结构。 对于jqueryajax调用,最好始终保持这种状态
$.ajax({
type: "POST",
url: "/BookStore/SelectProduct",
dataType: "text/xml",
data: "",
processData: false, // default to true will parse data as an Array whereas we send XML
contentType: "text/xml",
async: false,
beforeSend: function (request)
{
// to set some formats
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
if (XMLHttpRequest.status == 400) {
// Bad Request
if (XMLHttpRequest.responseText.indexOf("DOMAIN_NOT_FOUND") != -1) {
alert('invalid domain');
return false;
}
}
else if (XMLHttpRequest.status == 401) {
// User/Pass Invalid
alert('invalid authentication');
return false;
}
else{
alert('error'+XMLHttpRequest.responseText);
return false;
}
},
success: function(xml) {
/* right your logic here */
return;
} });
谢谢,
Chiranjeevi显示您的Ajax请求?很抱歉,我忘了插入它。编辑:脚本已更新。
$.ajax({
url: "/BookStore/SelectProduct",
data: {"id": id},
type: 'POST',
cache: false,
success: function(response) {
// Add in what to do when ajax call is successful
},
error: function(xhr, ajaxOptions, thrownError) {
alert('error');
}
$.ajax({
type: "POST",
url: "/BookStore/SelectProduct",
dataType: "text/xml",
data: "",
processData: false, // default to true will parse data as an Array whereas we send XML
contentType: "text/xml",
async: false,
beforeSend: function (request)
{
// to set some formats
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
if (XMLHttpRequest.status == 400) {
// Bad Request
if (XMLHttpRequest.responseText.indexOf("DOMAIN_NOT_FOUND") != -1) {
alert('invalid domain');
return false;
}
}
else if (XMLHttpRequest.status == 401) {
// User/Pass Invalid
alert('invalid authentication');
return false;
}
else{
alert('error'+XMLHttpRequest.responseText);
return false;
}
},
success: function(xml) {
/* right your logic here */
return;
} });