这一讲介绍springMVC使用rest风格添加数据的实现。在之前的一讲中添加一个链接跳转到add.jsp页面,对应代码如下所示:

<%@ 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" >
${um.value.username }
----${um.value.nickname }
----${um.value.password }
----${um.value.email }<br/>
</c:forEach>
</body>
</html>

对应使用get方式跳转的url为http://localhost:8080/springMVC001/user/add。对应controller类中需要跳转到add.jsp页面,其中需要初始化一个user对象。对应add方法如下所示:

// 链接到add页面时是GET请求,会访问这段代码
@RequestMapping(value = "/add", method = RequestMethod.GET)
public String add(@ModelAttribute("user") Users user) {
// 开启modelDriven
//两种方式往add.jsp页面初始化一个user实例:
//方式一:在入参中使用Model,然后在方法中新建一个user对象;
//方式二:在入参中使用ModelAttribute注解方式新建一个user对象,此处使用该方式。
// model.addAttribute(new User());
return "user/add";
}

对应跳转到add.jsp页面,为一个表单结构,需要使用spring提供的表单标签,对应代码如下所示:

<%@ 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 -->
<!-- controller类中需要初始化一个User对象在前台表单中使用-->
<!-- 将表单中的值添加到modelAttribute的属性值user中 -->
<sf:form method="post" modelAttribute="user" enctype="multipart/form-data">
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>

对应请求为post请求,且没有表单action,则跳转到RequestMethod为post的add方法中,之前add.jsp页面中存在对输入的服务器校验,需要针对User对象使用bean-validator.jar进行校验,对应代码如下所示:

package zttc.itat.entity;

import javax.validation.constraints.Size;

import org.hibernate.validator.constraints.Email;
import org.hibernate.validator.constraints.NotEmpty; public class Users {
private String username;
private String password;
private String nickname;
private String email; public Users() {
} @NotEmpty(message="用户名不能为空")
public String getUsername() {
return username;
} public void setUsername(String username) {
this.username = username;
} @Size(min=1,max=10,message="密码的长度应该在1和10之间")
public String getPassword() {
return password;
} public void setPassword(String password) {
this.password = password;
} public String getNickname() {
return nickname;
} public void setNickname(String nickname) {
this.nickname = nickname;
} @Email(message="邮箱的格式不正确")
public String getEmail() {
return email;
} public void setEmail(String email) {
this.email = email;
} public Users(String username, String password, String nickname, String email) {
super();
this.username = username;
this.password = password;
this.nickname = nickname;
this.email = email;
}
}

对应在controller类中需要将post请求得到的user对象进行前台验证,使用BindingResult来得到验证的结果,如果结果有误,则跳转到add.jsp页面,对应代码如下所示:

// 在具体添加用户时,是post请求,就访问以下代码
@RequestMapping(value = "/add", method = RequestMethod.POST)
public String add(@Validated Users user, BindingResult br,
) throws IOException {// 一定要紧跟Validate之后写验证结果类
if (br.hasErrors()) {
// 如果有错误直接跳转到add视图
return "user/add";
}
users.put(user.getUsername(), user);
return "redirect:/user/users";
}

springMVC入门-04的更多相关文章

  1. SpringMVC札集(01)——SpringMVC入门完整详细示例(上)

    自定义View系列教程00–推翻自己和过往,重学自定义View 自定义View系列教程01–常用工具介绍 自定义View系列教程02–onMeasure源码详尽分析 自定义View系列教程03–onL ...

  2. 【Spring】SpringMVC入门示例讲解

    目录结构: // contents structure [-] SpringMVC是什么 Spring MVC的设计原理 SpringMVC入门示例 1,复制Jar包 2,Web.xml文件 3,My ...

  3. Spring+SpringMVC+MyBatis深入学习及搭建(十二)——SpringMVC入门程序(一)

    转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/6999743.html 前面讲到:Spring+SpringMVC+MyBatis深入学习及搭建(十一)——S ...

  4. SpringMVC入门第二天

    SpringMVC第二天 1.   回顾 1.Springmvc介绍? Springmvc是Spring公司 2.Springmvc入门程序 第一步:Web工程 第二步:导Jar包 第三步:web.x ...

  5. 【网络爬虫入门04】彻底掌握BeautifulSoup的CSS选择器

    [网络爬虫入门04]彻底掌握BeautifulSoup的CSS选择器 广东职业技术学院  欧浩源 2017-10-21 1.引言 目前,除了官方文档之外,市面上及网络详细介绍BeautifulSoup ...

  6. 3.2.1 SpringMVC入门

    一. SpringMVC入门 1. MVC介绍 MVC全名 是Model View Controller, 是模型(model) - 视图(view) - 控制器(controller) 的缩写, 它 ...

  7. SpringMVC入门学习(二)

    SpringMVC入门学习(二) ssm框架 springMVC  在上一篇博客中,我简单介绍了一下SpringMVC的环境配置,和简单的使用,今天我们将进一步的学习下Springmvc的操作. mo ...

  8. SpringMVC入门学习(一)

    SpringMVC入门学习(一) ssm框架 spring  SpringMVC是一个Java WEB框架,现在我们知道Spring了,那么,何为MVC呢? MVC是一种设计模式,其分为3个方面 mo ...

  9. springMVC入门(一)

    1.   SpringMVC入门 1.1SpringMVC是什么 Spring web mvc和Struts2都属于表现层的框架,它是Spring框架的一部分,我们可以从Spring的整体结构中看得出 ...

随机推荐

  1. 关于Class中的Signature属性

    1.Signature属性:https://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html#jvms-4.7.9 2.ClassSigna ...

  2. ANTLR4权威指南 - 第6章 尝试一些实际中的语法

    第6章 尝试一些实际中的语法 在前一章,我们学习了通用词法结构和语法结构,并学习了如何用ANTLR的语法来表述这些结构.现在,是时候把我们学到的这些用来构建一些现实世界中的语法了.我们的主要目标是,怎 ...

  3. Rails 增加一个模型(model)

      之前我们已经看到用脚手架运行的model程序.现在是时候第二个model了. 第二个model用来处理post的评论. 7.1 新建一个模型 Rails模型使用一个单一的的名称,其相应的数据库表使 ...

  4. Cmake编写JNI

    调用两个库 CMakeLists.txt //把那种大段的注释去掉了 cmake_minimum_required(VERSION ) add_library( # Sets the name of ...

  5. vs未能解析此远程名称: 'api.nuget.org'

    知道了DNS地址我们就可以来修改了,点击电脑右下角的连接图标,选择“打开网络和共享中心”,当然也可以在控制面板中“网络和Internet”进入“打开网络和共享中心”:   进入“网络和共享中心”后,我 ...

  6. SQL Server附加数据库拒绝访问解决方法汇总

    @本文来自百度 方法一:修改权限法 1 打开要附加的数据库文件所在的文件夹,即扩展名为mdf的文件所在的文件夹,如下图所示: 2 右键单击mdf文件,选择“属性”,如下图所示: 3 单击“安全”选项卡 ...

  7. eclipse相关问题处理

    maven,新建的web工程下,没有resource跟test目录,做法:https://blog.csdn.net/gengjianchun/article/details/78679036 项目右 ...

  8. Node.js学习笔记(八) --- Node.js的路由模块封装

    1 .模块化的方式封装 整理中… 2 .封装仿照 express 的路由整理中…

  9. Microsoft .NET Pet Shop 4: Migrating an ASP.NET 1.1 Application to 2.0

    249 out of 297 rated this helpful - Rate this topic Gregory Leake Microsoft Corporation Alan Le, Ale ...

  10. Tomcat配置列表显示

    找到tomcat安装的conf文件下的web.xml文件 C:\Program Files\Apache Software Foundation\Tomcat 8.0\conf\web.xml 打开后 ...