SSM 实现 RESTful 风格
上文介绍了分页,详情请点击 SSM博客实战(1)–实现分页效果 。
但是我们的分页效果的链接是 这样的 http://localhost:8090/ForestBlog/?nowPage=2
我们希望的是:http://localhost:8090/ForestBlog/p/2
也就是传说中的 RESTful 风格。
本文将做介绍,不足的地方,希望大家不吝赐教,在下方评论。
这里主要讲控制器的代码,其他的代码也贴一下吧。
一、业务层
1、ArticleService.java (接口)
- //分页显示
- public void showArticleByPage(HttpServletRequest request, Model model,Integer pageNow) throws Exception;
2、ArticleServiceImpl.java (实现类)
- @Override
- public void showArticleByPage(HttpServletRequest request, Model model,Integer pageNow) throws Exception {
- // String pageNow = request.getParameter("pageNow");
- Page page = null;
- List<ArticleCustom> articleList = new ArrayList<ArticleCustom>();
- int totalCount = articleMapperCustom.getArticleCount();
- if (pageNow != null) {
- // page = new Page(totalCount, Integer.parseInt(pageNow));
- page = new Page(totalCount, pageNow);
- articleList = this.articleMapperCustom.selectArticleByPage(page.getStartPos(), page.getPageSize());
- } else {
- page = new Page(totalCount, 1);
- articleList = this.articleMapperCustom.selectArticleByPage(page.getStartPos(), page.getPageSize());
- }
- model.addAttribute("articleList", articleList);
- model.addAttribute("page", page);
- }
注意:注释部分是原来的代码,这里加了一个 从控制器 传来的 页码(pageNow)参数。
二、控制层
IndexController.java
- @Autowired
- private HttpServletRequest request;
- @Autowired
- private ArticleService articleService;
- //首页显示
- @RequestMapping("/")
- public String IndexView(HttpServletRequest request, Model model) throws Exception {
- //此处的articleService是注入的articleService接口的对象
- articleService.showArticleByPage(request, model,null);
- return "/Home/Index/index";
- }
- //分页显示
- @RequestMapping("/p/{pageNow}")
- @ResponseBody //适合RESTful
- public ModelAndView PageView(HttpServletRequest request, Model model, @PathVariable("pageNow") Integer pageNow) throws Exception{
- articleService.showArticleByPage(request,model,pageNow);
- ModelAndView modelAndView = new ModelAndView();
- modelAndView.setViewName("Home/Index/index");
- return modelAndView;//不会被解析为跳转路径,而是直接写入HTTP response body中
- }
注意:
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 风格相关推荐
- ssm框架restful风格实现增删改查
1.什么是restful风格 大家在做Web开发的过程中,method常用的值是get和post. 可事实上,method值还可以是put和delete等等其他值. 既然method值如此丰富,那么就 ...
- RESTful风格的SSM框架搭建
1 使用idea编辑工具,maven项目构建工具搭建RESTful风格的java项目 2 进行项目配置 2.1 pom文件依赖 1 <project xmlns="http://mav ...
- springmvc restful风格操作
ssm框架 controller: package com.sgcc.controller;import java.util.ArrayList; import java.util.List;impo ...
- 进入全屏 nodejs+express+mysql实现restful风格的增删改查示例
首先,放上项目github地址:https://github.com/codethereforam/express-mysql-demo 一.前言 之前学的java,一直用的ssm框架写后台.前段时间 ...
- RESTful风格及其SpringMVC实现
目录 1.RESTful概念 2.RESTful功能 3.对比:传统方式操作资源 4.SpringMVC实现传统方式操作资源 5.使用RestFul操作资源 6.SpringMVC实现RESTful操 ...
- springboot 集成jpa_基于Spring Boot+JPA Restful 风格的数据
第一章 Restful简介 Restful是一种软件架构风格,设计风格而不是标准,只是提供了一组设计原则和约束条件.它主要用于客户端和服 务器交互类的软件.基于这个风格设计的软件可以更简洁,更有层次, ...
- java restful接口开发实例_Spring Boot 中 10 行代码构建 RESTful 风格应用!
点击上方"Java后端技术",选择"置顶或者星标" 你关注的就是我关心的! 作者:江南一点雨 微信公众号:牧码小子(ID:a_javaboy) 推荐阅读:10个 ...
- 分享一个基于 Shiro 的权限管理系统,亮点是支持 restful 风格 URL.
Shiro-Action 本项目使用 Spring Boot 搭建, 用于加深对 Spring Boot 与 Shiro 的学习, 项目特色是支持 restful 风格权限控制, 支持对同一 URL, ...
- layuiajax提交表单控制层代码_究竟怎么用Restful风格编代码必看这篇。(二)
点击上方"IT咸鱼",星标公众号每天分享技术栈,开发工具等 简单急记几个小点:RequestMapping注解的使用和里面涉及到的参数用途和写法 @RequestMapping(& ...
- 用cxf开发restful风格的WebService
我们都知道cxf还可以开发restful风格的webService,下面是利用maven+spring4+cxf搭建webService服务端和客户端Demo 1.pom.xml <projec ...
最新文章
- Intel GPU实现游戏与数据中心
- Python之禅 by Tim Peters
- 系统功能的可配置性设想
- ppt讲解中的过渡_PPT黑科技,只用一张图做出3D动画
- 【Java数据结构】顺序存储的二叉树
- debian webmin 安装
- JavaScript实现气球打字游戏
- gmail服务器停止响应,gmail停用后带来巨**烦 - 外贸邮箱邮件群发 - 电脑网络 - 福步外贸论坛(FOB Business Forum) |中国第一外贸论坛...
- 关于华为产品生命周期
- 大专一年级计算机考试题,大专一年级语文期中考试试卷.doc
- 微软SQL Server BI认证专家QQ群36882826
- 关于学术道德,我们应该遵循的规范
- 华硕主板Z97-C无法识别三星 M.2 NVME固态硬盘的解决方案
- 1.Android稳定性测试
- c语言设计体育打分程序,校运会成绩录入系统部分C语言源代码设计
- eclipse配置glassfish插件和密码
- 杰里之升级复位可以选择软复位跳转和绝对地址跳转【篇】
- CRC校验码计算,以常用CRC-8为例
- 山东大学数据库课程设计火车票系统报告
- 写实植物与大气地貌案例《雪山松林》
热门文章
- 深入理解viewport及相关属性的关系
- OracleLinux6的安装
- 集结六大行业领袖,「数据科学家」新课全球首发!
- 北京长途汽车站一览表
- memcpy( )函数复制二维数组 memcmp( )函数比较二维数组
- Android考察报告模板,《跨越星弧》星球地质考察报告首次公开!
- k8s拉取harbor镜像_Kubernetes-连接Harbor仓库拉取镜像
- python socket connect 阻塞_python – 如何获得非阻塞socket connect()?
- pyjion python3.6_Pyjion的代码质量一例 [20160221]
- iframe页面相互调用方法