如何在spring security java config中通过jsp form更新用户详细信息

时间:2015-09-07 12:52:45

标签: hibernate jsp spring-security spring-java-config

我试图在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>

1 个答案:

答案 0 :(得分:0)

我认为您缺少绑定用户对象及其属性到表单的配置。请检查此tutorial

@ModelAttribute("userForm") User user

<form:form method="POST" action="update" modelAttribute="userForm">
 <td><form:input path="name"/></td>