Spring MVC学习笔记——用户增删该查和服务器端验证
建立一个动态web项目,起名为SpringMVC_crud
导包,其中包括jstl的一些包等
1.先写一个User.java,是用户类

文件User.java文件
package org.common.model; import javax.validation.constraints.Size; import org.hibernate.validator.constraints.Email;
import org.hibernate.validator.constraints.NotEmpty; public class User {
private String username;
private String password;
private String email;
private String nickname; public User() {
super();
} public User(String username, String password, String email, String nickname) {
super();
this.username = username;
this.password = password;
this.email = email;
this.nickname = nickname;
} @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;
} @Email(message="邮箱的格式不正确")
public String getEmail() {
return email;
} public void setEmail(String email) {
this.email = email;
} public String getNickname() {
return nickname;
} public void setNickname(String nickname) {
this.nickname = nickname;
} }
2.再创建Controller控制器

文件UserController.java
add的时候有两种,第一种
//链接到add页面时候是GET请求,会访问这段代码
@RequestMapping(value="/add",method=RequestMethod.GET)
//把一个对象放到了@ModelAttribute中,Model的Key就是user
public String add(Model model){
//开启modeDrive
model.addAttribute(new User());
return "user/add";
}
第二种
//链接到add页面时候是GET请求,会访问这段代码
@RequestMapping(value="/add",method=RequestMethod.GET)
//把一个对象放到了@ModelAttribute中,Model的Key就是user
public String add(@ModelAttribute("user") User user){
//开启modeDrive
//model.addAttribute(new User());
return "user/add";
}
package org.common.controller; import java.util.HashMap;
import java.util.Map; import org.common.model.User;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod; @Controller
@RequestMapping("/user")
public class UserController {
private Map<String,User> users = new HashMap<String,User>(); //创建一个users对象 public UserController() {
users.put("ldh",new User("ldh","刘德华","123","123123"));
users.put("zxy",new User("zxy","张学友","123","123123"));
users.put("gfc",new User("gfc","郭富城","123","123123"));
users.put("lm",new User("lm","黎明","123","123123"));
} @RequestMapping(value="/users",method=RequestMethod.GET)
public String list(Model model){
model.addAttribute("users", users);
return "user/list";
} //链接到add页面时候是GET请求,会访问这段代码
@RequestMapping(value="/add",method=RequestMethod.GET)
//把一个对象放到了@ModelAttribute中,Model的Key就是user
public String add(@ModelAttribute("user") User user){
//开启modeDrive
//model.addAttribute(new User());
return "user/add";
} //在具体添加用户的时候,是POST请求,就访问以下代码
@RequestMapping(value="/add",method=RequestMethod.POST)
public String add(@Validated User user,BindingResult br){//一定要紧跟@Validated之后写验证结果类
if(br.hasErrors()){
//如果有错误,直接跳转到add视图
return "user/add";
}
users.put(user.getUsername(),user);
return "redirect:/user/users";
} // //链接到add页面时候是GET请求,会访问这段代码
// @RequestMapping(value="/add",method=RequestMethod.GET)
// public String add(Model model){
// //开启modeDrive
// model.addAttribute(new User());
// return "user/add";
// }
//
// //在具体添加用户的时候,是POST请求,就访问以下代码
// @RequestMapping(value="/add",method=RequestMethod.POST)
// public String add(User user){
// users.put(user.getUsername(),user);
// return "redirect:/user/users";
// } }
jsp/user/add.jsp
http://localhost:8080/springmvc_crud/user/add
<%@ 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>
<sf:form method="post" modelAttribute="user">
<table width="700" align="center" border="1">
<tr>
<td>用户名:</td><td><sf:input path="username"/><sf:errors path="username"/></td>
</tr>
<tr>
<td>用户密码:</td><td><sf:password path="password"/><sf:errors path="password"/></td>
</tr>
<tr>
<td>用户昵称:</td><td><sf:input path="nickname"/></td>
</tr>
<tr>
<td>用户邮箱:</td><td><sf:input path="email"/><sf:errors path="email"/></td>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="用户添加"/>
</td>
</tr>
</table>
</sf:form> </body>
</html>

jsp/user/list.jsp
http://localhost:8080/springmvc_crud/user/users
<%@ 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>
<c:forEach items="${users}" var="um">
${um.value.username}
----${um.value.nickname}
----${um.value.password}
----${um.value.email}<br/>
</c:forEach>
</body>
</html>

user-servlet.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd"> <!-- 使用defaultAnnotationHandleMapping -->
<context:component-scan base-package="org.common.controller"></context:component-scan>
<mvc:annotation-driven></mvc:annotation-driven>
<!-- InternalResourceViewResolver视图的映射关系,还有其他很多视图 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/"></property>
<property name="suffix" value=".jsp"></property>
</bean> </beans>
web.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
<!-- 配置DispatchServlet,截获特定的URL请求 -->
<!-- 默认自动加载/WEB-INF/simpleSpringMVC-servlet.xml -->
<!-- (即<servlet-name>-servlet.xml)的Spring配置文件,启动web层的Spring容器 -->
<servlet>
<servlet-name>user</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>user</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping> <!-- 设置字符编码 -->
<filter>
<filter-name>CharacterFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping> </web-app>
Spring MVC学习笔记——用户增删该查和服务器端验证的更多相关文章
- Spring MVC 学习笔记8 —— 实现简单的用户管理(4)用户登录
Spring MVC 学习笔记8 -- 实现简单的用户管理(4)用户登录 增删改查,login 1. login.jsp,写在外面,及跟WEB-INF同一级目录,如:ls Webcontent; &g ...
- Spring MVC 学习笔记10 —— 实现简单的用户管理(4.3)用户登录显示全局异常信息
</pre>Spring MVC 学习笔记10 -- 实现简单的用户管理(4.3)用户登录--显示全局异常信息<p></p><p></p>& ...
- Spring MVC 学习笔记9 —— 实现简单的用户管理(4)用户登录显示局部异常信息
Spring MVC 学习笔记9 -- 实现简单的用户管理(4.2)用户登录--显示局部异常信息 第二部分:显示局部异常信息,而不是500错误页 1. 写一个方法,把UserException传进来. ...
- Spring MVC 学习笔记12 —— SpringMVC+Hibernate开发(1)依赖包搭建
Spring MVC 学习笔记12 -- SpringMVC+Hibernate开发(1)依赖包搭建 用Hibernate帮助建立SpringMVC与数据库之间的联系,通过配置DAO层,Service ...
- Spring MVC 学习笔记11 —— 后端返回json格式数据
Spring MVC 学习笔记11 -- 后端返回json格式数据 我们常常听说json数据,首先,什么是json数据,总结起来,有以下几点: 1. JSON的全称是"JavaScript ...
- Spring MVC 学习笔记一 HelloWorld
Spring MVC 学习笔记一 HelloWorld Spring MVC 的使用可以按照以下步骤进行(使用Eclipse): 加入JAR包 在web.xml中配置DispatcherServlet ...
- Spring MVC 学习笔记2 - 利用Spring Tool Suite创建一个web 项目
Spring MVC 学习笔记2 - 利用Spring Tool Suite创建一个web 项目 Spring Tool Suite 是一个带有全套的Spring相关支持功能的Eclipse插件包. ...
- Spring MVC 学习笔记1 - First Helloworld by Eclipse【& - java web 开发Tips集锦】
Spring MVC 学习笔记1 - First Helloworld by Eclipse reference:http://www.gontu.org 1. 下载 Spring freamwork ...
- Spring MVC学习笔记——完整的用户登录
1.搭建环境的第一步是导包,把下面这些包都导入工程中 /media/common/工作/Ubuntu软件/SpringMVC_jar包整理/aop/media/common/工作/Ubuntu软件/S ...
随机推荐
- linux基础-第十四单元 Linux网络原理及基础设置
第十四单元 Linux网络原理及基础设置 三种网卡模式图 使用ifconfig命令来维护网络 ifconfig命令的功能 ifconfig命令的用法举例 使用ifup和ifdown命令启动和停止网卡 ...
- Bootstrap滚动监听
滚动监听(Scrollspy)插件,即自动更新导航插件,会根据滚动条的位置自动更新对应的导航目标.其基本的实现是随着您的滚动,基于滚动条的位置向导航栏添加 .active class. <!DO ...
- jQuery基础--样式篇(4)
jQuery选择器: 1.id选择器:通过id名来获取节点,id是唯一的,每个id在页面上只能使用一次. $( "#id" ) 2.类选择器:通过class样式类名来获取节点 $( ...
- Qt做动画旋转旋转图片
今天看到百度首页的音乐播放有个图片可以旋转,感觉很酷就用qt做了一个类似的,关键时刻还是要发挥数学功底,静下心来,写一写,画一画,编程对数学分析能力要求还是不小的,以后要经常锻炼数学分析能力啊! Wi ...
- iOS开发中的错误整理,iOS9之后的UIWindow(TopWindow)以及UIWindow与statusBar的关系
iOS9之后的UIWindow的问题(TopWindow),以及UIWindow与statusBar之间的联系 1.出现的问题 iOS9之后UIWindow必须要指定一个根控制器,不然会报错!iOS9 ...
- iOS开发中的错误整理,百思项目'我的'模块,tableFooterViewHeight的问题.提醒自己对KVO和Block的运用欠缺
一.错误分析:由于tableFooterView中的数据是通过请求服务器后得到的,tableFooterViewHeight也是根据请求过来的数据经过布局子控件而计算出来的.(注意:计算高度是在子线程 ...
- git log 格式化输出
Git log --graph --pretty=format: '%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)& ...
- Dubbo系列(3)_官方Demo说明
一.本文目的 通过Dubbo的官方Demo介绍,学会搭建一个简单的Dubbo程序,包括服务端.客户端.接口等. Demo地址:https://github.com/alibaba/dubbo/ ...
- Spring Assert 断言
Assert(断言)的初步理解构思 Web 应用在接受表单提交的数据后都需要对其进行合法性检查,如果表单数据不合法,请求将被驳回.类似的,当我们在编写类的方法时,也常常需要对方法入参进行合 法性检查, ...
- git初体验(四)git标签
1.git 标题(tag) 关于git标签的描述,参考这里 2.标题管理 创建: 切换到需要打标签的分支上,如: git checkout master git tag v1.0 # 默认标签是打在最 ...