接着上一讲介绍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>

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

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

最新文章

  1. 3、DNS服务器功能(正向、反向解析)
  2. iOS 推送小记
  3. 1.Cookie的定义和分类,及优缺点
  4. 表格制作模块xlwt
  5. python(三)一个文件读写操作的小程序
  6. NODE.JS安装配置
  7. &lt;1&gt; perl概述
  8. linux $ 类型变量 及Makefile 中 $ 类型变量的含义
  9. 转 : net use的使用
  10. 晓莲说-何不原创:java 实现二维数组冒泡排序
  11. vue学习:vue+webpack的快速使用指南(新手向)
  12. mysql 取名会涉及到关键字 的问题
  13. Gson解析泛型
  14. git 实战
  15. 【笔记】Cocos2dx学习笔记
  16. P1231 教辅的组成
  17. Installing Percona XtraDB Cluster on CentOS
  18. /dev/mem可没那么简单【转】
  19. C#代码审查工具 StyleCop
  20. IDEA + SSH OA 第一天(项目收获:Hibernate XML)

热门文章

  1. manjaro i3 sound soft
  2. ssh 登录进入 docker container
  3. XML CData 处理
  4. 面试题6:二叉树最近公共节点(LCA)《leetcode236》
  5. 面试:TCP和UDP协议
  6. 既之前的基础,先写个简单的PHP 与数据库 的数据交流
  7. Caused by: org.hibernate.HibernateException: identifier of an instance of ... is alterde from
  8. Java程序中的死锁
  9. PHP中文件操作(2)-- 写文件
  10. 通过读写文本文件小结“关于python处理中文编码的问题”