Spring MVC 学习笔记7 —— 实现简单的用户管理(3)修改和删除
1.修改功能:
浏览器请求url: {url}/user/<username>/update
//7. update, 先有一个GET到 update。jsp, 再有一个POST完成修改
@RequestMapping(value="/{username}/update", method=RequestMethod.GET)
public String update(@PathVariable String username, Model model){
model.addAttribute("user",users.get(username));<span style="white-space:pre"> </span>//"users" 改成 "users2", jsp中改成users2,可以显示,但提交空密码提示报错!
//model.addAttribute(users.get(username));
return "user/update";
}
@RequestMapping(value="/{username}/update", method=RequestMethod.POST)
public String update(@PathVariable String username, @Validated User user, BindingResult mybR){
users.put(username, user);
if (mybR.hasErrors()){
return "user/update"; //实际没有这个页面请求的响应啊,怎么可以呢?username = null时就是这个页面
}
return "redirect:/user/users"; //这个是客户端跳转
}
对应的update.jsp文件:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@taglib uri="http://www.springframework.org/tags/form" prefix="sf"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Update user</title>
</head>
<body>
<p>Here is the update page..</p>
<!-- prefix = sf(springform) 开始使用form 在这里. 没有写Action,直接提交会给 /add -->
<sf:form metod="post" modelAttribute="user">
Username: <sf:input path="username"/><sf:errors path="username"></sf:errors><br/>
Password: <sf:input path="password"/><sf:errors path="password"></sf:errors><br/>
Nickname: <sf:input path="nickname"/><br/>
Email:<sf:input path="email"/><sf:errors path="email"></sf:errors><br/>
<input type="submit" value="修改用户"/>
</sf:form>
</body>
</html>
2.删除功能
//8. Delete,
@RequestMapping(value="/{username}/delete",method=RequestMethod.GET)<span style="white-space:pre"> </span>//should use delete later on.
public String delete(@PathVariable String username, Model model){
//model.addAttribute(users, get(username)); //
users.remove(username);<span style="white-space:pre"> </span>//直接删除
return "redirect:/user/users";
}
对应的 delete.jsp页面:
none.