1.添加时点击没有任何响应和提示,google了一遍有说是js影响了,有说是路径或者过滤的问题,但是自己查找了好久都没有查找出原因,悲剧了一个晚上,5个钟啊。
2.和现有的成功项目仔细比较得出,插入时要去掉js语句用struts的html:form html:text property标签传入double类型,Integer类型
,还有就是插入时没有插入主键,并且数据库中设置了主键为auto_increment;
3.应用了在action类中添加调试时的输出语句
:
public ActionForward addUser(ActionMapping mapping, ActionForm form,//添加客户
HttpServletRequest request, HttpServletResponse response) {
System.out.println("插入数据之前1");
DynaActionForm userForm = (DynaActionForm) form;
Clientinfo user = new Clientinfo();//直接用Clientinfo就好,不用注入对象
// clientId
// user.setClientId((Integer)userForm.get("clientId"));
user.setName(userForm.getString("name"));
user.setSex(userForm.getString("sex"));
user.setAddress(userForm.getString("address"));
user.setTelephone(userForm.getString("telephone"));
user.setPinCodes((Long)userForm.get("pinCodes"));
user.setLoginAccount(userForm.getString("loginAccount"));
String password=userForm.getString("password");
String passwordAgain=userForm.getString("passwordAgain");
System.out.println("插入数据之前2");
if(password.equals(passwordAgain)){
user.setPassword(password);
}
else{
request.setAttribute("message", "你两次输入的密码不相等!");//添加的message请求属性在message.jsp取得
return mapping.findForward("addUser");//addClientError
}
System.out.println("插入数据之前3");
clientInfo.insertClientInfo(user);
System.out.println("插入数据之前4");
request.setAttribute("message", "添加课程成功!");
return mapping.findForward("addUser");
}
}
信息: Server startup in 17556 ms
插入数据之前1
插入数据之前2
插入数据之前3
插入数据之前4
OK了,
4.解决了是重新写了DDL语句,数据库中设置了主键为auto_increment,然后使用public void insertClientInfo(Clientinfo client){//是否要插入主键
getHibernateTemplate().save(client);
}
时client对象没有传入主键即可添加成功。