我试图在spring security hibernate中编辑和更新用户信息,如用户名,电话号码,地址和emailId。我正在编辑表单中的信息并尝试通过提交表单进行更新。我是Spring安全新手,您可以帮我提交更新后的表单并保存吗?
AppController.java
@RequestMapping(value={"/update"}, method = RequestMethod.POST)
public String update(@Valid User user,BindingResult result,ModelMap model){
service.updateUser(user);
return "prefs";
}
AppDao.java
void updateUser(User user);
AppDaoImpl.java
@Override
public void updateUser(User user) {
Session session = getSession();
session.saveOrUpdate(user);
session.update(user);
}
prefs.jsp
<form method="POST" name="editProfile" action="update">
<div class="margin-top-10 form-group">
<input class="form-control input-lg" name="name" id="name" placeholder="Contact Name" size="25" type="text" value="${user.getName()}">
<input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}"/>
</div>
<div class="margin-top-10 form-group">
<input class="form-control input-lg" name="contactNumber" id="contactNumber" placeholder="Phone Number" size="25" type="text" value="${user.getContactNumber()}">
</div>
<div class="margin-top-10 form-group">
<input class="form-control input-lg" name="emailId" id="emailId" placeholder="Email" size="25" type="text" value="${user.getEmailId()}">
</div>
<div class="margin-top-10 form-group">
<input class="form-control input-lg" name="address" id="address" placeholder="Address" type="text" value="${user.getAddress()}">
</div>
<div class="margin-top-10 form-group">
<input class="form-control input-lg" name="password" id="password" placeholder="Password" size="25" type="hidden" value="${user.getPassword()}">
</div>
<div class="margin-top-10 form-actions form-group">
<button type="submit" class="btn btn-default btn-primary" id="updateUser">Update Settings</button>
</div>
</form>
答案 0 :(得分:0)
我认为您缺少绑定用户对象及其属性到表单的配置。请检查此tutorial
@ModelAttribute("userForm") User user
<form:form method="POST" action="update" modelAttribute="userForm">
<td><form:input path="name"/></td>