【串线篇】实现一个RestfulCRUD
一、概述
利用SpringMVC做一个CRUD(增删改查)符合Rest风格的;
C:Create:创建
R:Retrieve:查询
U:Update:更新
D:Delete:删除
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
添加俩包,支持jstl标签(Java server pages standarded tag library,即JSP标准标签库)
二、效果
员工列表:
员工添加:
员工修改:
员工删除-点击完成删除来到列表页面
增删改查的URL地址; /资源名/资源标识
/emp/1 GET:查询id为1的员工
/emp/1 PUT:更新id为1的员工
/emp/1 DELETE:删除id为1的员工
/emp POST:新增员工;
/emps GET:查询所有员工
三、实现
1.员工列表展示
查询所有员工----员工列表展示:访问index.jsp----直接发送/emps到控制器<jsp:forward page="/emps"></jsp:forward>------控制器查询所有员工------放在请求域中(数据传出)-----转发到list页面展示
2.员工添加:
界面1点击添加链接--控制器加model—返回界面2添加界面点击提交—控制器取model直接传参就能取
在list页面点击“”员工添加“”----控制器(查询出所有的部门信息要展示在页面)----来到添加页面(add.jsp)--------输入员工数据--------点击保存(/emp )------处理器收到员工保存请求(保存员工)--------保存完成以后还是来到列表页面;
spring表单标签:
原来我们全部通过${}取数据
<%@taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
使用spring通过 SpringMVC 的表单标签可以实现将模型数据中的属性和 HTML 表单元素相绑定,以实现表单数据更便捷编辑和表单值的回显
新标签里的属性:
path:
1)、当做原生的name项
2)、自动回显隐含模型中某个对象对应的这个属性的值
value:内部值
遍历出的对象的属性,但我们不用像之前去写遍历的标签</c:forEach>
itemLabel: 看到的名字
itemValue:内部值
特色:
1)、SpringMVC认为,表单数据中的每一项最终都是要回显的;(即返回界面会自动渲染请求域中的数据)
path指定的是一个属性;这个属性是从隐含模型(model)(请求域中取出的某个对象中的属性);path指定的每一个属性,请求域中保存的对象一定要拥有这个属性;这个对象就是请求域中的command作为key
2)、modelAttribute="":
可以告诉SpringMVC不要去找command的值了,我放了一个modelAttribute指定自定义的值;比如employee找对象用的key就用employee;
model.addAttribute("employee", new Employee());
3.员工修改
流程同上
需求上在修改页面不加员工名字,那么从页面传回控制器的model对象employee的名字字段就为空,所以要在正式更新之前调用一下被@ModelAttribute标注的方法,该方法根据页面中存的隐藏id查一遍employee,返回employee
隐藏属性:<input type="hidden" name="id" value="${employee.id }"/>
@ModelAttribute :被该注解修饰的方法,会在每一次请求时优先执行,用于接收前台jsp页面传入的参数
4.员工删除
与添加、修改不同的是,删除操作只过一边程序:即只走一遍Controller
5.引入jQuery.js出404分析
<!-- 默认前端控制器是拦截所有资源(除过jsp),js文件就404了;要js文件的请求是应该交给tomcat处理的
<!-- 告诉SpringMVC,自己映射的请求就自己处理,不能处理的请求(这里的jquery.js引入)直接交给tomcat -->
加标签:
<!-- 这个标签允许静态资源能访问,但动态映射的请求就不行了(比如/emp这种常写的),有副作用 -->
<mvc:default-servlet-handler/>
再加标签
<!-- springmvc可以保证动态请求和静态请求都能访问 -->
<mvc:annotation-driven></mvc:annotation-driven>
【串线篇】实现一个RestfulCRUD的更多相关文章
- 【转】C# 串口操作系列(1) -- 入门篇,一个标准的,简陋的串口例子。
C# 串口操作系列(1) -- 入门篇,一个标准的,简陋的串口例子. 标签: c#objectnewlineexceptionbytestring 2010-05-17 01:10 117109人阅读 ...
- JavaWeb学习总结第二篇--第一个JavaWeb程序
JavaWeb学习总结第二篇—第一个JavaWeb程序 最近我在学院工作室学习并加入到研究生的项目中,在学长学姐的带领下,进入项目实践中,为该项目实现一个框架(用已有框架进行改写).于是我在这里记录下 ...
- Vue.js基础篇实战--一个ToDoList小应用
距离开始学Vue已经过去一个多月了,总想把学到的东西柔和在一起,做点东西出来,于是有了这个Todolist小应用. 使用vuex 纯粹基础,没有用到web pack,vuex,npm,下次把它改造一下 ...
- Hadoop总结篇之三---一个Job到底被提交到哪去了
我们会定义Job,我们会定义map和reduce程序.那么,这个Job到底是怎么提交的?提交到哪去了?它到底和集群怎么进行交互的呢? 这篇文章将从头讲起. 开发hadoop的程序时,一共有三大块,也就 ...
- IOS 中openGL使用教程2(openGL ES 入门篇 | 绘制一个多边形)
在上一篇我们学习了如何搭建IOS下openGL的开发环境,接下来我们来学习如何绘制一个多边形. 在2.0之前,es的渲染采用的是固定管线,何为固定管线,就是一套固定的模板流程,局部坐标变换 -> ...
- iOS开发UI篇—实现一个私人通讯录小应用【转】
转一篇学习segue不错的教程 一.该部分主要完成内容 1.界面搭建 2.功能说明 (1).只有当账号和密码输入框都有值的时候,登录按钮才能交互 (2). ...
- Golang学习-第二篇 搭建一个简单的Go Web服务器
序言 由于本人一直从事Web服务器端的程序开发,所以在学习Golang也想从Web这里开始学起,如果对Golang还不太清楚怎么搭建环境的朋友们可以参考我的上一篇文章 Golang的简单介绍及Wind ...
- iOS-----openGL--openGL ES iOS 入门篇2--->绘制一个多边形
在上一篇我们学习了如何搭建IOS下openGL的开发环境,接下来我们来学习如何绘制一个多边形. 在2.0之前,es的渲染采用的是固定管线,何为固定管线,就是一套固定的模板流程,局部坐标变换 -> ...
- Win32编程API 基础篇 -- 2.一个简单的窗口 根据英文教程翻译
一个简单的窗口 例子:简单的窗口 有时人们在IRC提问,”我应该怎样制作一个窗口”...嗯,这恐怕不是完全这么简单好回答!其实这并不难一旦你明白你在做什么,但在你得到一个可展示的窗口之前还有一些事情需 ...
随机推荐
- ForkJoinPool线程池--分支执行
import java.util.ArrayList; import java.util.concurrent.ExecutionException; import java.util.concurr ...
- 10.Servlet简单介绍
1.什么是Servlet * Servlet是javaweb的三大组件之一,它属于动态资源.Servlet的作用是处理请求,服务器会把接收到的请求交给Servlet来处理,在Servlet种通常需要: ...
- 【leetcode】336. Palindrome Pairs
题目如下: 解题思路:对于任意一个word,要找出在wordlist中是否存在与之能组成回文的其他words,有两种思路.一是遍历wordlist:二是对word本身进行分析,找出能组成回文的word ...
- Oracle12c RAC数据导出至Oracle11g
一.Oracle12c导出数据 1.连接数据库 sqlplus / as sysdba 2.查看pdbs show pdbs; 3.切换pdb alter session set container= ...
- springmvc把对象放到session中
1:首先把创建的对象放到Map中, @RequestMapping("/testSession") public String testSession(Map<Stri ...
- paper 150:GCC--GNU Compiler Collection(GNU编译器套件)
gcc命令 编程开发 gcc命令使用GNU推出的基于C/C++的编译器,是开放源代码领域应用最广泛的编译器,具有功能强大,编译代码支持性能优化等特点.现在很多程序员都应用GCC, ...
- AcWing 248. 窗内的星星 (扫描线)打卡
题目:https://www.acwing.com/problem/content/250/ 题意:给你n个点,现在问你能每个点都有个权值,问你能覆盖最多的权值是多少,边界不算 思路:这个其实和我之前 ...
- Distribution money
Distribution money Accepts: 713 Submissions: 1881 Time Limit: 2000/1000 MS (Java/Others) Memory Limi ...
- 4 November in ss
Contest A. 输油管道问题 某石油公司计划建造一条由东向西的主输油管道.该管道要穿过一个有 \(n\) 口油井的油田.从每口油井都要有一条输油管道沿最短路经 (或南或北) 与主管道相连.如果给 ...
- php关键字static使用
php中static关键字使用: 情景1:静态变量 使用static关键字定义静态变量 静态变量:只存在于函数作用域内,也就是说,静态变量只存活在栈中.一般的函数内变量在函数结束后会释放,比如局部变量 ...