springMVC入门-06

  这一讲介绍更新操作的实现,更新操作在controller类中首先需要在前台通过某一字段获取对象之后,将对象放在controller类中的Model对象中,用于在update.jsp前台页面进行编辑操作,接着在update.jsp页面修改完成之后,需要将前台的user对象在controller类中进行put操作,之后跳转到list.jsp显示页面。对应更新操作在controller类中的代码实现如下所示:

@RequestMapping(value="/{username}/update",method=RequestMethod.GET)
public String update(@PathVariable String username,Model model) {
    model.addAttribute(users.get(username));
    return "user/update";
}
    
@RequestMapping(value="/{username}/update",method=RequestMethod.POST)
public String update(@PathVariable String username,@Validated Users user,BindingResult br) {
    if(br.hasErrors()) {
        //如果有错误直接跳转到add视图
        return "user/update";
    }
    users.put(username, user);
    return "redirect:/user/users";
}
View Code

  对应在update.jsp页面与添加操作add.jsp页面代码一致,进行编辑操作的代码如下所示:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="sf" uri="http://www.springframework.org/tags/form" %>
<!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>Insert title here</title>
</head>
<body>
<!-- 此时没有写action,直接提交会提交给/add -->
<sf:form method="post" modelAttribute="user">
    Username:<sf:input path="username"/><sf:errors path="username"/><br/>
    Password:<sf:password path="password"/><sf:errors path="password"/><br/>
    Nickname:<sf:input path="nickname"/><br/>
    Email:<sf:input path="email"/><sf:errors path="email"/><br/>
    <input type="submit" value="修改用户"/>
</sf:form>
</body>
</html>
View Code

  在编辑页面之前需要添加一个跳转到update.jsp页面的链接,对应在list.jsp页面添加到update操作的链接,对应代码如下所示:

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!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>用户列表</title>
</head>
<body>
<a href="add">添加</a>
    <c:forEach items="${users}" var="um" >
    <a href="${um.value.username}">${um.value.username }</a>
        ----${um.value.nickname }
        ----${um.value.password }--<a href="${um.value.username }/update">修改</a>
        ----${um.value.email }<br/>
    </c:forEach>
</body>
</html>
View Code

  最终在编辑完成之后跳转到列表页面。

posted @ 2015-03-10 00:22  birdman-peter  阅读(120)  评论(0编辑  收藏  举报