上文介绍了分页,详情请点击 SSM博客实战(1)–实现分页效果 。

但是我们的分页效果的链接是 这样的 http://localhost:8090/ForestBlog/?nowPage=2

我们希望的是:http://localhost:8090/ForestBlog/p/2

也就是传说中的 RESTful 风格。

本文将做介绍,不足的地方,希望大家不吝赐教,在下方评论。

这里主要讲控制器的代码,其他的代码也贴一下吧。

一、业务层

1、ArticleService.java (接口)

  1. //分页显示
  2. public void showArticleByPage(HttpServletRequest request, Model model,Integer pageNow) throws Exception;

2、ArticleServiceImpl.java (实现类)

  1. @Override
  2. public void showArticleByPage(HttpServletRequest request, Model model,Integer pageNow) throws Exception {
  3. //  String pageNow = request.getParameter("pageNow");
  4. Page page = null;
  5. List<ArticleCustom> articleList = new ArrayList<ArticleCustom>();
  6. int totalCount = articleMapperCustom.getArticleCount();
  7. if (pageNow != null) {
  8. //  page = new Page(totalCount, Integer.parseInt(pageNow));
  9. page = new Page(totalCount, pageNow);
  10. articleList = this.articleMapperCustom.selectArticleByPage(page.getStartPos(), page.getPageSize());
  11. } else {
  12. page = new Page(totalCount, 1);
  13. articleList = this.articleMapperCustom.selectArticleByPage(page.getStartPos(), page.getPageSize());
  14. }
  15. model.addAttribute("articleList", articleList);
  16. model.addAttribute("page", page);
  17. }

注意:注释部分是原来的代码,这里加了一个 从控制器 传来的 页码(pageNow)参数。

二、控制层

IndexController.java

  1. @Autowired
  2. private  HttpServletRequest request;
  3. @Autowired
  4. private ArticleService articleService;
  5. //首页显示
  6. @RequestMapping("/")
  7. public String IndexView(HttpServletRequest request, Model model) throws Exception {
  8. //此处的articleService是注入的articleService接口的对象
  9. articleService.showArticleByPage(request, model,null);
  10. return "/Home/Index/index";
  11. }
  12. //分页显示
  13. @RequestMapping("/p/{pageNow}")
  14. @ResponseBody //适合RESTful
  15. public ModelAndView PageView(HttpServletRequest request, Model model, @PathVariable("pageNow") Integer pageNow) throws Exception{
  16. articleService.showArticleByPage(request,model,pageNow);
  17. ModelAndView modelAndView = new ModelAndView();
  18. modelAndView.setViewName("Home/Index/index");
  19. return modelAndView;//不会被解析为跳转路径,而是直接写入HTTP response body中
  20. }

注意:

articleService 是注入的

@Responsebody 表示该方法的返回结果直接写入 HTTP response body 中
一般在异步获取数据时使用,在使用 @RequestMapping 后,返回值通常解析为跳转路径,
加上 @Responsebody 后返回结果不会被解析为跳转路径,而是直接写入 HTTP response body 中。
比如异步获取json数据,加上 @Responsebody 后,会直接返回json数据。
@RequestBody 将 HTTP 请求正文插入方法中,使用适合的 HttpMessageConverter 将请求体写入某个对象。

三、视图层

  • 之前的 jsp 分页链接

<a href="?pageNow=2" class="btn btn-default">2</a>

  • 现在的 jsp 分页链接

<a href="${pageContext.request.contextPath}/p/2" class="btn btn-default">2</a>

是不是好看很多了呢?

当然 RESTful 风格不单单是为了好看,关于 RESTful 的内容,大家可以百度搜索一下吧。

今天就介绍到这里啦。

SSM 实现 RESTful 风格相关推荐

  1. ssm框架restful风格实现增删改查

    1.什么是restful风格 大家在做Web开发的过程中,method常用的值是get和post. 可事实上,method值还可以是put和delete等等其他值. 既然method值如此丰富,那么就 ...

  2. RESTful风格的SSM框架搭建

    1 使用idea编辑工具,maven项目构建工具搭建RESTful风格的java项目 2 进行项目配置 2.1 pom文件依赖 1 <project xmlns="http://mav ...

  3. springmvc restful风格操作

    ssm框架 controller: package com.sgcc.controller;import java.util.ArrayList; import java.util.List;impo ...

  4. 进入全屏 nodejs+express+mysql实现restful风格的增删改查示例

    首先,放上项目github地址:https://github.com/codethereforam/express-mysql-demo 一.前言 之前学的java,一直用的ssm框架写后台.前段时间 ...

  5. RESTful风格及其SpringMVC实现

    目录 1.RESTful概念 2.RESTful功能 3.对比:传统方式操作资源 4.SpringMVC实现传统方式操作资源 5.使用RestFul操作资源 6.SpringMVC实现RESTful操 ...

  6. springboot 集成jpa_基于Spring Boot+JPA Restful 风格的数据

    第一章 Restful简介 Restful是一种软件架构风格,设计风格而不是标准,只是提供了一组设计原则和约束条件.它主要用于客户端和服 务器交互类的软件.基于这个风格设计的软件可以更简洁,更有层次, ...

  7. java restful接口开发实例_Spring Boot 中 10 行代码构建 RESTful 风格应用!

    点击上方"Java后端技术",选择"置顶或者星标" 你关注的就是我关心的! 作者:江南一点雨 微信公众号:牧码小子(ID:a_javaboy) 推荐阅读:10个 ...

  8. 分享一个基于 Shiro 的权限管理系统,亮点是支持 restful 风格 URL.

    Shiro-Action 本项目使用 Spring Boot 搭建, 用于加深对 Spring Boot 与 Shiro 的学习, 项目特色是支持 restful 风格权限控制, 支持对同一 URL, ...

  9. layuiajax提交表单控制层代码_究竟怎么用Restful风格编代码必看这篇。(二)

    点击上方"IT咸鱼",星标公众号每天分享技术栈,开发工具等 简单急记几个小点:RequestMapping注解的使用和里面涉及到的参数用途和写法 @RequestMapping(& ...

  10. 用cxf开发restful风格的WebService

    我们都知道cxf还可以开发restful风格的webService,下面是利用maven+spring4+cxf搭建webService服务端和客户端Demo 1.pom.xml <projec ...

最新文章

  1. Intel GPU实现游戏与数据中心
  2. Python之禅 by Tim Peters
  3. 系统功能的可配置性设想
  4. ppt讲解中的过渡_PPT黑科技,只用一张图做出3D动画
  5. 【Java数据结构】顺序存储的二叉树
  6. debian webmin 安装
  7. JavaScript实现气球打字游戏
  8. gmail服务器停止响应,gmail停用后带来巨**烦 - 外贸邮箱邮件群发 - 电脑网络 - 福步外贸论坛(FOB Business Forum) |中国第一外贸论坛...
  9. 关于华为产品生命周期
  10. 大专一年级计算机考试题,大专一年级语文期中考试试卷.doc
  11. 微软SQL Server BI认证专家QQ群36882826
  12. 关于学术道德,我们应该遵循的规范
  13. 华硕主板Z97-C无法识别三星 M.2 NVME固态硬盘的解决方案
  14. 1.Android稳定性测试
  15. c语言设计体育打分程序,校运会成绩录入系统部分C语言源代码设计
  16. eclipse配置glassfish插件和密码
  17. 杰里之升级复位可以选择软复位跳转和绝对地址跳转【篇】
  18. CRC校验码计算,以常用CRC-8为例
  19. 山东大学数据库课程设计火车票系统报告
  20. 写实植物与大气地貌案例《雪山松林》

热门文章

  1. 深入理解viewport及相关属性的关系
  2. OracleLinux6的安装
  3. 集结六大行业领袖,「数据科学家」新课全球首发!
  4. 北京长途汽车站一览表
  5. memcpy( )函数复制二维数组 memcmp( )函数比较二维数组
  6. Android考察报告模板,《跨越星弧》星球地质考察报告首次公开!
  7. k8s拉取harbor镜像_Kubernetes-连接Harbor仓库拉取镜像
  8. python socket connect 阻塞_python – 如何获得非阻塞socket connect()?
  9. pyjion python3.6_Pyjion的代码质量一例 [20160221]
  10. iframe页面相互调用方法