接着上一讲介绍springMVC针对rest风格的支持。

查询数据
使用前:/user_show?id=120
使用后:/user/120 删除数据
使用前:/user_delete?id=123
使用后:/user/123/delete 更新数据
使用前:/user_updateInput?id=123
使用后:/user/123/update 查询所有数据
使用前:/user_list
使用后:/user/users

  使用Rest风格是针对某一数据在具体业务操作之前的url都是一致的,只是针对具体业务方法,修改最后的url,如之上的针对id为120的查询、删除、更新和修改操作的通用url都是/user/120/xxx,最后的“xxx”代表不同的处理逻辑,这样可以增强代码的可读性。

  以下是查询所有数据的实现。

  步骤一:创建user实体;

package zttc.itat.entity;

public class Users {
private String username;
private String password;
private String nickname;
private String email;
/**
* @return the username
*/
public String getUsername() {
return username;
}
/**
* @param username the username to set
*/
public void setUsername(String username) {
this.username = username;
}
/**
* @return the password
*/
public String getPassword() {
return password;
}
/**
* @param password the password to set
*/
public void setPassword(String password) {
this.password = password;
}
/**
* @return the nickname
*/
public String getNickname() {
return nickname;
}
/**
* @param nickname the nickname to set
*/
public void setNickname(String nickname) {
this.nickname = nickname;
}
/**
* @return the email
*/
public String getEmail() {
return email;
}
/**
* @param email the email to set
*/
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类,在其中新建用于测试的user对象,并通过Model类返回;

package zttc.itat.controller;
//此处存在url映射,对应查询所有成员的url为: /user/users @Controller
@RequestMapping(value="/user")
public class UserController {
private Map<String, Users> users = new HashMap<String, Users>(); public UserController() {
//新建用于测试的对象
users.put("sdy", new Users("sdy", "123", "宋冬野", "asss"));
users.put("ldm", new Users("ldm", "123", "刘东明", "asss"));
users.put("zyp", new Users("zyp", "123", "周云蓬", "asss"));
users.put("zww", new Users("zww", "123", "张玮玮", "asss"));
users.put("wt", new Users("wt", "123", "吴吞", "asss"));
} @RequestMapping(value = "/users", method = RequestMethod.GET)
public String list(Model model) {
//此处返回前台页面的对象为“users”,前台通过${users}来获取对象
model.addAttribute("users", users);
//跳转的页面为user文件夹下的list.jsp文件,之前在servlet中有指定前缀和后缀
return "user/list";
}
}

步骤三:将放在model中的users在前台进行显示,对应跳转到的url为/user/users。前台使用jstl来循环显示数据,使用前需要导入jstl.jar。在jsp头部导入jstl标签库,对应代码如下所示:

<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!--头部需要导入jstl标签库,标签以c开头-->
<%@ 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>
<!--在items中获取从controller中得到的users对象。-->
<c:forEach items="${users}" var="um" >
${um.value.username }
----${um.value.nickname }
----${um.value.password }
----${um.value.email }<br/>
</c:forEach>
</body>
</html>

对应显示效果如下图所示:

对应工程结构如下图所示:

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

  1. springMVC入门(一)

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

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

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

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

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

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

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

  5. SpringMVC入门第二天

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

  6. CSS3基础入门03

    CSS3 基础入门03 线性渐变 在css3当中,通过渐变属性实现之前只能通过图片实现的渐变效果.渐变分为线性渐变和径向渐变以及重复渐变三种.线性渐变的模式主要是颜色从一个方向过渡到另外一个方向,而径 ...

  7. 3.2.1 SpringMVC入门

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

  8. 【网络爬虫入门03】爬虫解析利器beautifulSoup模块的基本应用

    [网络爬虫入门03]爬虫解析利器beautifulSoup模块的基本应用   1.引言 网络爬虫最终的目的就是过滤选取网络信息,因此最重要的就是解析器了,其性能的优劣直接决定这网络爬虫的速度和效率.B ...

  9. SpringMVC入门学习(二)

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

随机推荐

  1. Chapter 3 Phenomenon——8

    I turned to sit up, and this time he let me, releasing his hold around my waist and sliding as far f ...

  2. Go语言学习笔记十二: 范围(Range)

    Go语言学习笔记十二: 范围(Range) rang这个关键字主要用来遍历数组,切片,通道或Map.在数组和切片中返回索引值,在Map中返回key. 这个特别像python的方式.不过写法上比较怪异使 ...

  3. java学习-zxing生成二维码矩阵的简单例子

    这个例子需要使用google的开源项目zxing的核心jar包 core-3.2.0.jar 可以百度搜索下载jar文件,也可使用maven添加依赖 <dependency> <gr ...

  4. 国际化实现之基于jquery

    jQuery.i18n.properties是一款轻量级的jQuery国际化插件,能实现Web前端的国际化. jQuery.i18n.properties 采用 .properties 文件对 Jav ...

  5. For update带来的思考

    For update or not 起源 ​ 之所以想写这个专题,是因为最近在做一个抢占任务的实现.假设数据库很多个任务,在抢占发生之前任务的状态都是FREE.现在假设同时有一堆抢占线程开始工作,抢占 ...

  6. JAVA-5NIO之Selector

    转载:并发编程网:ifeve.com NIO教程 Selector(选择器)是Java NIO中能够检测一到多个NIO通道,并能够知晓通道是否为诸如读写事件做好准备的组件.这样,一个单独的线程可以管理 ...

  7. rpm包的rpmbuild spec文件详解

    http://machael.blog.51cto.com/829462/213477 上一篇日志写到,为什么要制作rpm包,以及如何使用.src.rpm文件生成rpm包.最后部分还看到.src.rp ...

  8. vs2015 活动解决方案或项目由选择的源代码管理插件以外的插件管理

    1.vs2015切换源代码管理插件,svn无法切换到git,点击是将关闭项目 解决方案: 找到项目中.sln 文件,使用编辑器打开,将Svn-Managed = true 设置为false

  9. 能ping通外网dns但不能上网一例

    一个win7本本仅通过一个无线路由一个人上网,突然一天不能上网了,甚是奇怪,一看本地连接均是正常的.而且能ping通外网的dns,但无论如何就是打不开网页,表现为输入任何网址很迅速的显示该页无法显示, ...

  10. subltime快捷键

    subltime 是一款快速开发各种文档的软件,本文主要介绍使用编写HTML,文章末尾提供绿色版安装包下载工具 A快捷键说明 Ctrl+Shift+P:打开命令面板Ctrl+P:搜索项目中的文件Ctr ...