spring mvc实现新增用户

1、先在展示页面(查询出来的结果页)添加一个连接<a href="add">添加</a>

2、在后台添加一个添加的方法,点击添加,是跳转到add.jsp页面,刚过去没数据,应该是get方法请求

@RequestMapping(value="/add",method=RequestMethod.GET)
public String add(){
  //这个页面点击add跳转就会报500的错,传入的是空的
    return "user/add"; }

 

//链接到add页面时,为get请求,访问以下代码(两种方式)
@RequestMapping(value="/add",method=RequestMethod.GET)
/* 方式一:
public String add(Model model){
model.addAttribute(new User());
return "user/add";
}
*/
// 方式二:把一个对象放入到model中,key 就是 user
public String add(@ModelAttribute("user") User user){
//model.addAttribute(new User());
return "user/add";
}
     //add方法,根据get和post请求来调用哪个方法
//提交数据的时候时post请求
//如果页面有提交到action,这边的value就是action的值
@RequestMapping(value="/add",method=RequestMethod.POST)
public String add(User user){
//把user对象放进去key(id)
userList.put(user.getId(), user); // return "user/userlist";//返回到逻辑视图名
//(添加后,不能把添加过的数据展示出来)服务器端行为
return "redirect:user/list";//客户端重新发送请求(把添加进去的展示出来)
}

3、在add.jsp中添加form表单

<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
这句话在spring-framework-3.2.1.RELEASE-dist\spring-framework-3.2.1.RELEASE\docs\spring-framework-reference\html\view.html中
<body>
<!-- 不指定action,那么请求提交到/add -->
<!-- modelAttribute添加的对象(我们添加用户,就是添加到user中) -->
<form:form modelAttribute = "user" method="post">
ID:<form:input path="id"/><br/>
userName:<form:input path="userName"/><br/>
password:<form:input path="password"/><br/>
email:<form:input path="email"/><br/>
<input type="submit" value="提交"/>
</form:form>
</body>

处理编码问题

<!-- 处理中文编码的filter -->
<filter>
<filter-name>encodingFilter</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>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

验证添加页面(注释方法)

public class User {
private String id;
private String userName;
private String password;
private String email; public User(){ }
public User(String id, String userName, String password, String email) {
this.id = id;
this.userName = userName;
this.password = password;
this.email = email;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
@NotEmpty(message="用户名不能为空")
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
@Size(min=4,max=10,message="密码长度4-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;
}
}
@NotEmpty(message="用户名不能为空")
public String getUserName() {
return userName;
}
@Size(min=4,max=10,message="密码长度4-10位")
public String getPassword() {
return password;
}
@Email(message="邮箱格式不正确")
public String getEmail() {
return email;
}

在控制器那得加一个验证注释

@Validated User user,BindingResult bindingResult

//添加用户是,为post请求,访问以下代码
@RequestMapping(value="/add",method=RequestMethod.POST)
public String add(@Validated User user,BindingResult bindingResult){//紧跟validate之后写验证结果
if(bindingResult.hasErrors()){
//若有错误,直接掉转到add 视图
return "user/add";
}
userList.put(user.getUserName(), user);
return "redirect:/user/userlist";
}

最后在页面上提示错误

<body>
<!-- 没有写action,直接提交给/add -->
<form:formmethod="post" modelAttribute="user">
UserName:<sf:input path="userName"/><form:errors path="userName"/><br/>
password:<sf:password path="password"/><sf:errors path="password"/><br/>
email:<sf:input path="email"/><form:errors path="email"/><br/>
<input type="submit" value="保存"/>
</form:form>
</body>

添加的控制器(完整代码)

@Controller
@RequestMapping("/user")
public class UserController {
private Map<String, User> userList= new HashMap<String, User>(); public UserController() {
userList.put("hl", new User("hl","123456","部门经理","hanlu@bdqn.cn"));
userList.put("zs", new User("zs","123456","质量经理","zhangsan@bdqn.cn"));
userList.put("zw", new User("zw","123456","开发工程师","zhangwei@bdqn.cn"));
userList.put("ly", new User("ly","123456","实施顾问","liyu@bdqn.cn"));
}
//上面的value是url,下面的userlist是视图逻辑名
@RequestMapping(value="/userlist",method=RequestMethod.GET)
public String list(Model model){
model.addAttribute("userlist",userList);
return "user/list";//逻辑视图名
} //链接到add页面时,为get请求,访问以下代码(两种方式)
@RequestMapping(value="/adduser",method=RequestMethod.GET)
/* 方式一:
public String add(Model model){
model.addAttribute(new User());
return "user/add";
}
*/
// 方式二:把一个对象放入到model中,key 就是 user
public String add(@ModelAttribute("user") User user){
//model.addAttribute(new User());
return "user/add";
} //添加用户是,为post请求,访问以下代码
@RequestMapping(value="/adduser",method=RequestMethod.POST)
public String add(@Validated User user,BindingResult bindingResult){//紧跟validate之后写验证结果
if(bindingResult.hasErrors()){
//若有错误,直接掉转到add 视图
return "user/add";
}
userList.put(user.getUserName(), user);
return "redirect:/user/userlist";//客户端重新发送请求
} }

别忘了添加验证的3个jar包aaarticlea/png;base64,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" alt="" />

1、在userlist.jsp的展示页面添加链接

    <a href="view/${ul.value.id }">userName:${ul.value.userName }</a><br/>

2、实现view.jsp页面

 <body>
=============查看用户信息===========
ID:${user.id }<br/>
userName:${user.userName }<br/>
password:${user.password }<br/>
email:${user.email }<br/>
</body>

在userController中再加上如下代码:实现查看每条记录

//地址中的参数用{id}来写
//REST风格 是/user/list/{id} 网页那是?id=3
@RequestMapping(value="/view/{id}",method=RequestMethod.GET)
public String view(@PathVariable String id,Model model){
//userlist。get就是拿到key(id)的值
model.addAttribute(userList.get(id));
return "user/view";
}

增加后的查看view.jsp

spring mvc实现新增用户的更多相关文章

  1. Spring MVC学习笔记——用户增删该查和服务器端验证

    建立一个动态web项目,起名为SpringMVC_crud 导包,其中包括jstl的一些包等 1.先写一个User.java,是用户类 文件User.java文件 package org.common ...

  2. Spring Boot 构建电商基础秒杀项目 (二) 使用 Spring MVC 方式获取用户信息

    SpringBoot构建电商基础秒杀项目 学习笔记 修改 DOMapper 在 UserPasswordDOMapper.xml 添加: <select id="selectByUse ...

  3. Spring MVC教程——检视阅读

    Spring MVC教程--检视阅读 参考 Spring MVC教程--一点--蓝本 Spring MVC教程--c语言中午网--3.0版本太老了 Spring MVC教程--易百--4.0版本不是通 ...

  4. spring mvc+myBatis配置详解

    一.spring mvc Spring框架(框架即:编程注解+xml配置的方式)MVC是Spring框架的一大特征,Spring框架有三大特征(IOC(依赖注入),AOP(面向切面),MVC(建模M- ...

  5. Hibernate validator使用和自定义validator及整合Spring MVC

    http://blog.csdn.net/lwphk/article/details/43983669 Hibernate validator使用 导入validation-api-xxx.jar 以 ...

  6. Spring MVC之简单入门

    一.Spring MVC简介: 1.什么是MVC 模型-视图-控制器(MVC)是一个众所周知的以设计界面应用程序为基础的设计模式.它主要通过分离模型(Model).视图(View)及控制器(Contr ...

  7. Java Web 学习(4) —— Spring MVC 概览

    Spring MVC 概览 一. Spring MVC Spring MVC 是一个包含了 Dispatcher Servlet 的 MVC 框架. Dispatcher Servlet 实现了 : ...

  8. Spring MVC -- Spring MVC入门

    本篇博客首先介绍Spring MVC的优点,然后介绍Spring MVC的基本组件,包括DispatcherServlet,并学习如何开发一个“传统风格”的控制器,这是在Spring 2.5版本之前开 ...

  9. 一、Spring MVC起步——IntelliJ IDEA 搭建Spring MVC环境(手把手搭建)

    本机环境: JDK 1.7 IntelliJ IDEA 2017.2 1.新建项目 Create New Project ​ 选择Spring MVC ​ 填写项目名和项目存放位置 ​ 然后点击Fin ...

随机推荐

  1. C#中小数点后保留两位小数,四舍五入的函数及使用方法

    Math.Round(45.367,2)     //Returns   45.37 Math.Round(45.365,2)     //Returns   45.36 C#中的Round()不是我 ...

  2. [CareerCup] 14.4 Templates Java模板

    14.4 Explain the difference between templates in C++ and generics in Java. 在Java中,泛式编程Generic Progra ...

  3. 浪潮之巅IT那点事之三——神奇的规律

    “道可道,非常道”是老子在<道德经>中的开篇第一句话,这句话的意思是:万事万物其真理是可以探索并道说得出来的,但这些真理并非是永恒的,天道轮转,没有永恒不变的真理(来自百度百科).在IT行 ...

  4. UIAccessibilityElement

    UIaccessibilityElement类封装的项目信息对一些特殊的人可见,默认情况下是不可访问的.例如,一个图标或文字图像不会自动访问,因为它没有继承的UIView(或UIControl).一个 ...

  5. c# 模拟get和post

    private string HttpPost(string Url, string postDataStr)         {             HttpWebRequest request ...

  6. 微信小程序开发:http请求

    在微信小程序进行网络通信,只能和指定的域名进行通信,微信小程序包括四种类型的网络请求. 普通HTTPS请求(wx.request) 上传文件(wx.uploadFile) 下载文件(wx.downlo ...

  7. offsetWidth与scrollLeft

    有两个值一个是:scrollTop一个是scrollLeft第一个代表页面利用滚动条滚动到下方时,隐藏在滚动条上方的页面的高度:第二个代表页面利用滚动条滚动到右侧时,隐藏在滚动条左侧的页面的宽度 do ...

  8. [工具类]泛型集合转换为DataTable

    写在前面 在实际项目中,用到了将集合转换为DataTable,就试着封装了一个方法,记录一下. 代码 using System; using System.Collections.Generic; u ...

  9. 第一次作业---安卓开发工具Android studio发展演变

    Android studio2013年由谷歌推出,用于安卓端的开发,我所使用的版本为2015年5月推出的1.3.2. 1.安装.配置.作为麻瓜的我,刚刚接触Android studio时在安装方面走了 ...

  10. JavaScript、CSS、JSP 实现用户注册页面与信息校验

    参考:http://blog.csdn.net/fightfaith/article/details/50277337 需求:实现用户注册页面并作出逻辑校验.要求: (1)完成注册页面样式如下: (2 ...