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

Posted

技术标签:

【中文标题】如何在spring security java config中通过jsp表单更新用户详细信息【英文标题】:How to update user details by jsp form in spring security java config 【发布时间】:2015-12-03 01:04:09 【问题描述】:

我正在尝试在 spring security hibernate 中编辑和更新用户信息,例如用户名、电话号码、地址和 emailId。我正在编辑表单中的信息并尝试通过提交表单来更新。我是 Spring Security 的新手,您能帮我提交更新后的表单并保存吗?

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】:

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

@ModelAttribute("userForm") User user

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

【讨论】:

以上是关于如何在spring security java config中通过jsp表单更新用户详细信息的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Spring Security 中的 java 代码登录用户?

如何使用 Spring-Security 3 和 Hibernate 4 将 spring security xml 配置 hibernate 转换为 java config

如何在 Grails 应用程序和 Java 应用程序之间共享 Spring Security 类?

如何使用spring security和java在jwt json中传递角色或权限

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

如何使用 Java 和 XML 配置在 Spring Security 中配置 jdbc 身份验证管理器?