如何在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中传递角色或权限