我在执行应用程序时遇到困难。
我有一个JSP页面,我以表格格式显示所有用户详细信息。该表中的每一行都有一个复选框。用户应该能够删除选定的行/行。有3个按钮,ADD
,REMOVE
和UPDATE
。当我单击“添加”按钮时,将出现一个包含表单的对话框,它将显示用户详细信息。单击该对话框上的“保存”按钮后,将向该表添加一行以及所有这些详细信息。
我已经实现了上述用例。但我面临一个问题。 当前复选框值是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>');
});
我想将id作为上述复选框的值
控制器:
public class ManageEmpMainController extends MultiActionController {
ManageEmpService manageEmpService;
public ModelAndView addEmp(HttpServletRequest req, HttpServletResponse resp) {
Employee emp = new Employee(\\Details);
manageEmpService.addEmp(emp);
return null;
}
}
DAO:
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
}
}
如果您需要任何其他信息,请与我们联系。
答案 0 :(得分:0)
AJax调用是异步的。这意味着您可以在从ajax调用获得响应之前执行其他代码。那就是代码中发生的事情。此外,您没有使用服务器返回的任何值。
使用它:
$("#addEmpBtn").click(function () {
var empData = $("#empForm").serialize();
$.ajax({
type : "POST",
url : "manageEmpMain/addEmp.do",
data: empData
}).done(function(response){
$('#dialogEmp').dialog('close');
$('#empTable').append('<tr><td><input type="checkbox" value="" name="empCheck" id="' + (response.id) + '"></td><td>Other details</td></tr>');
})
});