Javascript 如何在AJAX调用中获得响应?
我在应用程序的实现过程中遇到了问题 我有一个JSP页面,其中以表格格式显示所有用户详细信息。该表中的每一行都有一个复选框。用户应该能够删除选定的行。有3个按钮,Javascript 如何在AJAX调用中获得响应?,javascript,java,jquery,ajax,jsp,Javascript,Java,Jquery,Ajax,Jsp,我在应用程序的实现过程中遇到了问题 我有一个JSP页面,其中以表格格式显示所有用户详细信息。该表中的每一行都有一个复选框。用户应该能够删除选定的行。有3个按钮,添加、删除和更新。当我点击“添加”按钮时,会出现一个对话框,其中包含一个表单,并显示用户详细信息。单击该对话框上的“保存”按钮后,将向该表中添加一行,其中包含所有这些详细信息 我已经实现了上述用例。但我面临一个问题。 当前复选框值为employeeId。当我添加一个雇员时,我正在进行一个ajax调用,调用的是一个控制器,后跟服务和DAO。
添加
、删除
和更新
。当我点击“添加”按钮时,会出现一个对话框,其中包含一个表单,并显示用户详细信息。单击该对话框上的“保存”按钮后,将向该表中添加一行,其中包含所有这些详细信息
我已经实现了上述用例。但我面临一个问题。
当前复选框值为employeeId。当我添加一个雇员时,我正在进行一个ajax调用,调用的是一个控制器,后跟服务和DAO。在DAO层中,我得到新生成的EMP id(通过序列生成)。我可以将该ID传递给控制器类。但是如何将其返回到JSP,以便将其设置为新添加的复选框的值呢
Ajax调用:
$("#addEmpBtn").click(function () {
var empData = $("#empForm").serialize();
$.ajax({
type : "POST",
url : "manageEmpMain/addEmp.do",
data: empData
});
$('#dialogEmp').dialog('close');
$('#empTable').append('<tr><td><input type="checkbox" value="" name="empCheck" id="empCheck"></td><td>Other details</td></tr>');
});
public class ManageEmpMainController extends MultiActionController {
ManageEmpService manageEmpService;
public ModelAndView addEmp(HttpServletRequest req, HttpServletResponse resp) {
Employee emp = new Employee(\\Details);
manageEmpService.addEmp(emp);
return null;
}
}
public class ManageEmployeeDaoImpl extends HibernateDaoSupport {
@Override
public void addEmployee(Employee emp) {
// TODO Auto-generated method stub
int empId = (Integer)getHibernateTemplate().save(emp);
System.out.println("ID " +empId); // This empId can be passed to the controller. Not implemented yet
}
}
DAO:
$("#addEmpBtn").click(function () {
var empData = $("#empForm").serialize();
$.ajax({
type : "POST",
url : "manageEmpMain/addEmp.do",
data: empData
});
$('#dialogEmp').dialog('close');
$('#empTable').append('<tr><td><input type="checkbox" value="" name="empCheck" id="empCheck"></td><td>Other details</td></tr>');
});
public class ManageEmpMainController extends MultiActionController {
ManageEmpService manageEmpService;
public ModelAndView addEmp(HttpServletRequest req, HttpServletResponse resp) {
Employee emp = new Employee(\\Details);
manageEmpService.addEmp(emp);
return null;
}
}
public class ManageEmployeeDaoImpl extends HibernateDaoSupport {
@Override
public void addEmployee(Employee emp) {
// TODO Auto-generated method stub
int empId = (Integer)getHibernateTemplate().save(emp);
System.out.println("ID " +empId); // This empId can be passed to the controller. Not implemented yet
}
}
如果您需要任何其他信息,请告诉我。AJax调用是异步的。这意味着您的其他代码可能会在从ajax调用获得响应之前执行。这就是代码中发生的事情。此外,您没有使用服务器返回的任何值 使用以下命令:
$(“#addEmpBtn”)。单击(函数(){
var empData=$(“#empForm”).serialize();
$.ajax({
类型:“POST”,
url:“manageEmpMain/addamp.do”,
数据:empData
}).完成(功能(响应){
$('dialogEmp')。dialog('close');
$('#可空')。追加('其他详细信息');
})
});代码>谢谢你的回复。但不知道这会有什么帮助。是做同样的事对吗?不是做同样的事我的朋友。。检查我的更新答案done
或更好的success
将在ajaxOk之后调用,但如何在done方法中获得该值?我可以拿到那个id直到控制器级别。在这之后,我如何将它传递给JSP,因为我没有从控制器返回任何模型?