Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Spring MVC学习教程之流程表单提交,3步实现这个功能

Spring MVC学习教程之流程表单提交,3步实现这个功能

作者头像
用户1289394
发布于 2018-02-28 07:55:30
发布于 2018-02-28 07:55:30
9530
举报
文章被收录于专栏:Java学习网Java学习网

本文中将用Spring实现流程表单的提交功能,具体功能是使用web表单来添加一个新员工到员工名单列表中。

网络配图

第1步:准备所需的类

添加 addEmployeeEmployeeManager.java方法,这个方法将用于添加新员工到列表中。

代码语言:js
AI代码解释
复制
EmployeeManager.java
package com.programcreek.helloworld.service;
import java.util.ArrayList;
import java.util.List;
import com.programcreek.helloworld.model.Employee;
public class EmployeeManager {
private static List<Employee> employeeList;
public EmployeeManager(){
employeeList = new ArrayList<Employee>();
employeeList.add(new Employee(1, "Mike", "Smith"));
employeeList.add(new Employee(2, "John", "Taylor"));
employeeList.add(new Employee(3, "Dave", "Wilson"));
}
public List<Employee> getEmployeeList(){
return employeeList;
}
public Employee addEmployee(Employee e){
Employee employee = new Employee();
employee.setId(employeeList.size()+1);
employee.setFirstName(e.getFirstName());
employee.setLastName(e.getLastName());
employeeList.add(employee);
return employee;
}
}
Employee.java
package com.programcreek.helloworld.model;
public class Employee {
private int id;
private String lastName;
private String firstName;
public Employee(){
}
public Employee(int id, String lastName, String firstName) {
this.id = id;
this.lastName = lastName;
this.firstName = firstName;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
}

第2步:创建控制器

创建一个控制器来处理表单的提交。

代码语言:js
AI代码解释
复制
EmployeeAddController.java
package com.programcreek.helloworld.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import com.programcreek.helloworld.model.Employee;
import com.programcreek.helloworld.service.EmployeeManager;
@Controller
public class EmployeeAddController {
@RequestMapping("/showEmployeeForm")
public ModelAndView getEmployeeForm(){
ModelAndView mv = new ModelAndView("employeeAdd");
mv.addObject("employeeEntity", new Employee());
return mv;
}
@RequestMapping("/addEmployee")
public ModelAndView addEmployee(@ModelAttribute Employee e){
ModelAndView mv = new ModelAndView("EmployeeList");
EmployeeManager employeeManager = new EmployeeManager();
employeeManager.addEmployee(e);
mv.addObject("EmployeeList", employeeManager.getEmployeeList());
return mv;
}
}

网络配图

控制器有两个请求:一个是实现网页表单和其他流程表单的提交,这里用 @ModelAttribute的注解形式将属性映射到一个

员工表。

第3步:创建视图即jsp页面

代码语言:js
AI代码解释
复制
employeeAdd.jsp
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<body>
<h1>Add Employee</h1>
<form:form method="post" modelAttribute="employeeEntity" action="addEmployee">
First Name:<form:input path="firstName"></form:input><br/>
Last Name: <form:input path="lastName"></form:input><br/>
<input type="submit" value="Submit">
</form:form>
</body>
</html>

添加一个新的链接,用来完成添加员工。

代码语言:js
AI代码解释
复制
index.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!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=ISO-8859-1">
<title>Spring 4 MVC - HelloWorld Index Page</title>
</head>
<body>
<center>
<h3>
<a href="hello">Hello World</a>
</h3>
<h3>
<a href="employee">员工列表</a>
</h3>
<h3>
<a href="showEmployeeForm">添加</a>
</h3>
</center>
</body>
</html>
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-12-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Java学习网 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
《SpringMVC从入门到放肆》九、SpringMVC注解式开发(简单参数接收)
上一篇我们学习了注解式开发的配置方式并写了一个小Demo跑起来。今天我们来学习注解开发的参数接收。处理器方法中的常用参数有五类,这些参数会在系统调用时由系统自动赋值,即程序员可以在方法中直接使用。具体如下:
I Teach You 我教你
2019/05/25
4070
Spring MVC-06循序渐进之Converter和Formatter
Spring MVC-05循序渐进之数据绑定和form标签库(上) 和 Spring MVC-05循序渐进之数据绑定和form标签库(下) 实战从0到1 我们已经学习了数据绑定,见识了数据绑定的方便性。
小小工匠
2021/08/17
9140
Spring 4 MVC 表单校验资源处理(带源码)
下一篇文章:Spring 4 MVC 视图解析器(XML JSON PDF等) 纯注解
明明如月学长
2021/08/27
4880
8. RESTful案例
捞月亮的小北
2023/12/01
1220
SpringMVC:RESTful案例
目录 相关准备 功能清单 具体功能:访问首页 ①配置view-controller ②创建页面 具体功能:查询所有员工数据 ①控制器方法 ②创建employee_list.html 具体功能:删除 ①创建处理delete请求方式的表单 ③控制器方法 具体功能:跳转到添加数据页面 ①配置view-controller ②创建employee_add.html 具体功能:执行保存 ①控制器方法 具体功能:跳转到更新数据页面 ①修改超链接 ②控制器方法 ③创建employee_update.html 具体功能:执
愷龍
2023/02/26
4000
请给出一个SpringMVC的表单提交的例子和session运用的例子
2.表单提交和session 像学servlet那时一样,继hello world的例子以后,紧接着我们就要学习表单提交和session。 例2.1 <%@ page contentType="text/html; charset=GBK" %> <html> <head> <title>form test</title> </head> <body> <%=session.getAttribute("firstN") %> <FORM ACTION="formHan.do" METHOD="POST"> 姓名: <INPUT TYPE="TEXT" NAME="firstName"><BR> <INPUT TYPE="SUBMIT" VALUE="Submit"> </CENTER> </FORM> </body> </html> package com; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; @Controller public class HelloWorldController { @RequestMapping("/formHan") public void formHandle(HttpServletRequest req, HttpServletResponse res, HttpSession ses) throws IOException, ServletException { //没用 req.setCharacterEncoding("gbk"); String fn=req.getParameter("firstName"); System.out.println(fn+"1"); String fngbk = new String(fn.getBytes("iso8859-1"), "GBK"); System.out.println("filenameutf is " + fngbk); ses.setAttribute("firstN", fngbk); // PrintWriter pw=res.getWriter(); // pw.println(fn);//此句可以工作 req.getRequestDispatcher("formT.jsp").forward(req, res); // res.sendRedirect("formT.jsp");//此句可以工作 // return "/formT";//此句可以工作 } }
马克java社区
2019/09/29
4690
请给出一个SpringMVC的表单提交的例子和session运用的例子
Spring 全家桶之 Spring Web MVC(四)- Restful CRUD
使用Spring MVC编写一个Employee的CRUD项目,主要是编写Controller,员工数据保存在Map中,不使用数据库
RiemannHypothesis
2022/08/19
9650
Spring 全家桶之 Spring Web MVC(四)-  Restful CRUD
Spring 框架学习 (八) Spring MVC 的控制器
当你要处理请求映射时需要使用 @RequestMapping 注解。@RequestMapping 注解不仅可以放在函数前 也可以放在类前。
求和小熊猫
2020/11/25
9330
spring mvc 3 最简单demo
这两天再看spring mvc,想再网上找一个demo,感觉国内的demo都太复杂了。后来在国外网站上发现了一个比较简单,应该说是最简单的spring mvc的demo了,在此做个记录,给需要的人了解一下。
py3study
2020/01/14
6360
SpringMVC学习笔记
V:View,视图层,指工程中的html或jsp等页面,作用是与用户进行交互,展示数据
SerMs
2022/03/31
1.7K0
SpringMVC学习笔记
RESTful案例
# RESTful案例 准备工作 功能清单 具体功能:访问首页 a>配置view-controller b>创建页面 具体功能:查询所有员工数据 a>控制器方法 b>创建employee_list.html 具体功能:删除 a>创建处理delete请求方式的表单 b>删除超链接绑定点击事件 c>控制器方法 具体功能:跳转到添加数据页面 a>配置view-controller b>创建employee_add.html 具体功能:执行保存 >控制器方法 具体功能:跳转到更新数据页面 a>修改超链接 b>控制
用户9615083
2022/12/25
7160
RESTful案例
学习SpringMVC——你们要的REST风格的CRUD来了
  来来来,让一下,客官,您要的REST清蒸CRUD来了,火候刚刚好,不油不腻,请慢用~~~   如果说前面是准备调料,洗菜,切菜,摆盘,那么今天就来完整的上道菜,主要说的是基于REST风格实现数据的增删改查(CRUD)操作。 用料    entity:Employee + Department   对于这样的实体类大家肯定很熟悉,一个Employee就是一个员工,一个Department就是一个部门,一个员工只属于一个部门,一个部门可以对应多个员工。   Employee.java package com
JackieZheng
2018/01/16
1.2K0
学习SpringMVC——你们要的REST风格的CRUD来了
springmvc实例之添加雇员相关信息(二)
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
西西嘛呦
2020/08/26
3660
springmvc实例之添加雇员相关信息(二)
[Spring]01_环境配置
静默虚空
2018/01/05
6690
[Spring]01_环境配置
Spring 框架学习(七)Spring MVC 的初识
MVC 是一种设计模式,是模型(model)-- 视图(view)-- 控制器(controller)的缩写,他强制性的使应用的输入,处理和输出分开。
求和小熊猫
2020/11/25
4470
Spring MVC使用ModelAndView进行重定向
使用servlet重定向有两种方式,一种是forward,另一种就是redirect。forward是服务器内部重定向,客户端并不知道服务器把你当前请求重定向到哪里去了,地址栏的url与你之前访问的url保持不变。redirect则是客户端重定向,是服务器将你当前请求返回,然后给个状态标示给你,告诉你应该去重新请求另外一个url,具体表现就是地址栏的url变成了新的url。
kirin
2021/03/25
2.8K0
Request对象接收Form表单提交[通俗易懂]
转自:http://www.cnblogs.com/xdp-gacl/p/3798347.html
全栈程序员站长
2022/09/01
1.4K0
【万字长文】Spring MVC 层层递进轻松入门 !
Html是“名词”,CSS是“形容词”,JavaScript是“动词”,这三个兄弟凑在一起,就构成了 “静态” 页面,那么如何让他 “动态” 起来呢?这就需要后端相关技术的支持,这也是我们今天想要说的。
BWH_Steven
2020/03/26
1.4K0
【万字长文】Spring MVC 层层递进轻松入门 !
Spring Security 4 整合Hibernate Bcrypt密码加密(带源码)
下一篇文章:Spring Security 4 整合Hibernate 实现持久化登录验证(带源码)
明明如月学长
2021/08/27
1.1K0
Spring Web MVC 基础
在一个项目中,如果业务流程比较简单的时候,可以把控制器的功能交给视图,项目架构中只有视图和模型,没有控制器。
xiaozhangStu
2023/05/04
5270
推荐阅读
相关推荐
《SpringMVC从入门到放肆》九、SpringMVC注解式开发(简单参数接收)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档