表格数据的展现方式

编辑页面-->

CodeNamePrice

返回值类型的说明

属性信息: total/rows/属性元素{

"total":2000,

"rows":[

{"code":"A","name":"果汁","price":"20"},

{"code":"B","name":"汉堡","price":"30"},

{"code":"C","name":"鸡柳","price":"40"},

{"code":"D","name":"可乐","price":"50"},

{"code":"E","name":"薯条","price":"10"},

{"code":"F","name":"麦旋风","price":"20"},

{"code":"G","name":"套餐","price":"100"}

]

}

JSON的简单介绍

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它使得人们很容易的进行阅读和编写。

Object对象类型

Array格式

嵌套格式

例如:{"id":"100","hobbys":["玩游戏","敲代码","看动漫"],"person":{"age":"19","sex":["男","女","其他"]}}

编辑EasyUITable的VO对象package com.jt.vo;

import com.jt.pojo.Item;

import lombok.AllArgsConstructor;

import lombok.Data;

import lombok.NoArgsConstructor;

import lombok.experimental.Accessors;

import java.util.List;

@Data

@Accessors(chain = true)

@NoArgsConstructor

@AllArgsConstructor

public class EasyUITable {

private Long total;

private List rows;

}

商品列表展现

页面分析

说明: 当用户点击列表按钮时.以跳转到item-list.jsp页面中.会解析其中的EasyUI表格数据.发起请求url:’/item/query’

要求返回值必须满足特定的JSON结构,所以采用EasyUITable方法进行数据返回.

data-options="singleSelect:false,fitColumns:true,collapsible:true,pagination:true,url:'/item/query',method:'get',pageSize:20,toolbar:toolbar">

商品ID商品标题叶子类目卖点价格库存数量条形码状态创建日期更新日期

请求路径的说明

请求路径: /item/query

参数: page=1 当前分页的页数.

rows = 20 当前分页行数.

当使用分页操作时,那么会自动的拼接2个参数.进行分页查询.

编辑ItemController@RestController//由于ajax调用,采用JSON串返回

@RequestMapping("/item")

public class ItemController {

@Autowired

private ItemService itemService;

/**

* url:http://localhost:8091/item/query?page=1&rows=20 * 请求参数:

* page=1 当前分页的页数

* row=20 当前分页的行数

* 返回值结果:EasyUITable

* */ @RequestMapping("/query")

public EasyUITable findItemByPage(Integer page, Integer rows){

return itemService.findItemByPage(page,rows);

}

编辑ItemServiceImpl@Service

public class ItemServiceImpl implements ItemService {

@Autowired

private ItemMapper itemMapper;

/**

* 分页查询商品信息

* Sql语句: 每页20条

* select * from tb_item limit 起始位置,查询的行数

* 查询第一页

* select * from tb_item limit 0,20; [0-19]

* 查询第二页

* select * from tb_item limit 20,20; [20,39]

* 查询第三页

* select * from tb_item limit 40,20; [40,59]

* 查询第N页

* select * from tb_item limit (n-1)*rows,rows;

*

*

* @param rows

* @return

*/

@Override

public EasyUITable findItemByPage(Integer page, Integer rows) {

//1.手动完成分页操作

int startIndex = (page-1) * rows;

//2.数据库记录

List itemList = itemMapper.findItemByPage(startIndex,rows);

//3.查询数据库总记录数

Long total = Long.valueOf(itemMapper.selectCount(null));

//4.将数据库记录 封装为VO对象

return new EasyUITable(total,itemList);

//MP

}

}

页面效果展现

参数格式化说明

商品价格格式化说明

1).页面属性说明

当数据在进行展现时,会通过formatter关键字之后进行数据格式化调用. 具体的函数为KindEditorUtil.formatPrice函数.

价格

2).页面JS分析// 格式化价格 val="数据库记录" 展现的应该是缩小100倍的数据

formatPrice : function(val,row){

return (val/100).toFixed(2);

},

格式化状态信息

1). 页面标识

状态

2).页面JS分析// 格式化商品的状态

formatItemStatus : function formatStatus(val,row){

if (val == 1){

return '正常';

} else if(val == 2){

return '下架';

} else {

return '未知';

}

},

格式化叶子类目

页面分析

说明:根据页面标识, 要在列表页面中展现的是商品的分类信息. 后端数据库只传递了cid的编号.我们应该展现的是商品分类的名称.方便用户使用…

叶子类目

页面js分析//格式化名称 val=cid 返回商品分类名称

findItemCatName : function(val,row){

var name;

$.ajax({

type:"get",

url:"/item/cat/queryItemName", //

data:{itemCatId:val},

cache:true, //缓存

async:false, //表示同步 默认的是异步的true

dataType:"text",//表示返回值参数类型

success:function(data){

name = data;

}

});

return name;

}

编辑ItemCatPOJO对象@TableName("tb_item_cat")

@Data

@Accessors(chain = true)

public class ItemCat extends BasePojo{

@TableId(type = IdType.AUTO)

private Long id;

private Long parentId;

private String name;

private Integer status;

private Integer sortOrder;

private Boolean isParent; //数据库进行转化

}

编辑ItemCatController@RequestMapping("/item/cat")

public class ItemCatController {

@Autowired

private ItemCatService itemCatService;

/**

* url地址:/item/cat/queryItemName

* 参数: {itemCatId:val}

* 返回值: 商品分类名称

*/

@RequestMapping("/queryItemName")

public String findItemCatNameById(Long itemCatId){

//根据商品分类Id查询商品分类对象

ItemCat itemCat = itemCatService.findItemCatById(itemCatId);

return itemCat.getName(); //返回商品分类的名称

}

}

编辑ItemCatServiceImpl@Service

public class ItemCatSercviceImpl implements ItemCatService{

@Autowired

private ItemCatMapper itemCatMapper;

@Override

public ItemCat findItemCatById(Long itemCatId) {

return itemCatMapper.selectById(itemCatId);

}

页面效果展现

关于Ajax嵌套问题说明

问题描述

当将ajax改为异步时,发现用户的请求数据不能正常的响应。//格式化名称 val=cid 返回商品分类名称

findItemCatName : function(val,row){

var name;

$.ajax({

type:"get",

url:"/item/cat/queryItemName",

data:{itemCatId:val},

//cache:true, //缓存

async:true, //表示同步 默认的是异步的true

dataType:"text",//表示返回值参数类型

success:function(data){

name = data;

}

});

return name;

},

问题分析

商品的列表中发起2次ajax请求

1).data-options="singleSelect:false,fitColumns:true,collapsible:true,pagination:true,url:'/item/query',method:'get',pageSize:20,toolbar:toolbar">

2).ajax请求

解决方案

说明:一般条件下的ajax嵌套会将内部的ajax设置为同步的调用,不然可能会由于url调用的时间差导致数据展现不完全的现象。

关于端口号占用问题

关于项目中common.js引入问题

说明:一般会将整夜页面的JS通过某个页面进行标识,之后被其他的页面引用即可,方便以后的JS的切换。

1).引入xxx.js页面

2).页面引入JS

MybatisPlus 完成分页操作

编辑ItemService//使用MP方式实现分页操作:

@Override

public EasyUITable findItemByPage(Integer page, Integer rows) {

QueryWrapper queryWrapper=new QueryWrapper();

queryWrapper.orderByDesc("updated");

//暂时之封装了两个数据 页数/条数

IPage iPage=new Page<>(page,rows);

//MP 传递了对应的参数,则分页就会在内部完成,返回分页对象

iPage=itemMapper.selectPage(iPage, queryWrapper);

//获取分页的总记录数

Long total=iPage.getTotal();

//获取分页的结果

List list=iPage.getRecords();

return new EasyUITable(total,list);

}

编辑配置类@Configuration //标识我是一个配置类

public class MyBatisPlusConfig {

//MP 是Mybatis增强的一种工具 关键点在limit分页上,只要是分页就要用MP中分页拦截器的操作

@Bean

public PaginationInterceptor paginationInterceptor() {

PaginationInterceptor paginationInterceptor = new PaginationInterceptor();

// 设置请求的页面大于最大页后操作, true调回到首页,false 继续请求 默认false

// paginationInterceptor.setOverflow(false); // 设置最大单页限制数量,默认 500 条,-1 不受限制

// paginationInterceptor.setLimit(500);

// 开启 count 的 join 优化,只针对部分 left join paginationInterceptor.setCountSqlParser(new JsqlParserCountOptimize(true));

return paginationInterceptor;

}

}

ajax请求后台表格数据,商品后台表格数据的展现方式相关推荐

  1. dva ajax请求,dva框架使用mock.js模拟数据 + fetch请求数据

    what DVA? Dva是基于Redux做了一层封装,对于React的state管理,有很多方案,我选择了轻量.简单的Dva. dva 可以很方便就使用mock.js进行数据的模拟. 只需要三步,即 ...

  2. Ajax 请求头中常见的四种content-type,传输方式!

    四种常见的 POST 提交数据方式 HTTP 协议是以 ASCII 码传输,建立在 TCP/IP 协议之上的应用层规范.规范把 HTTP 请求分为三个部分:状态行.请求头.消息主体.协议规定 POST ...

  3. ajax spring mvc 接收json数据,easyui ajax请求获取SpringMVC @ResponseBody返回的Json数据为什么非得eval才能通过对象获取值?...

    是这样的,问题是不是比较郁闷, Spring代码@RequestMapping(value="/UserModel/createUser.html") @ResponseBody ...

  4. ajax请求网页源码看不到数据,关于js调用的数据,为什么源代码看不到数据

    代码1 function get_hot_posts(day) { $('#hot_question_list').html(' '); $.get(G_BASE_URL + '/explore/aj ...

  5. ajax请求 session过期跳转首页的两种处理方式

    在处理session过期跳转首页时遇到了一些困难,经过百度发现了大致两种方法,在这里进行一下整理: 1.直接重写jquery   ajax方法: (function($){ //备份jquery的aj ...

  6. 前端通过Ajax请求从后台返回数据到页面显示,实现分页功能

    本文纯属自己平时编代码时的总结,主要用于自己以后方便查看 后端controller代码 JsonMessage jsonMessage = new JsonMessage(); //********* ...

  7. ajax请求php返回的数据是整个页面的html,Ajax出错并返回整个页面html的问题

    有这样一个例子在thinkPHP视图页面执行一个给评论点赞的功能,为了强化用户体验,一般都采用ajax异步请求后台处理点赞数据,成功后页面执行局部更新后的数据即可.前台通常会用到jquery,通过执行 ...

  8. Ajax请求导出Excel的问题

    参考:http://yuwenlin.iteye.com/blog/2275289 1.Ajax请求导出Excel的问题描述: 前端发起Ajax请求get或post,后台使用Poi生成excel文件, ...

  9. Vue如何mock数据模拟Ajax请求

    我们在做一个项目时前期可能没有后端提供接口模拟数据,那么作为前端就需要自己写json文件模拟数据加载.网上往往参考的都是不全面的,比如get请求没问题但是post请求就报错了.在Vue中只需要vue- ...

最新文章

  1. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 按钮:让按钮看起来像个链接 (仍然保留按钮行为)...
  2. linux下获取线程号
  3. 说不尽的嘎达梅林:读郭雪波的长篇小说《青旗•嘎达梅林》
  4. 链表题目---3 合并两个有序单链表 和 分割链表
  5. viewer.js实现预览效果
  6. MUI框架 · 异步请求:mui.get()、mui.ajax()、mui.post() 技术罗列
  7. docker 解决php 502,Docker里两个php容器一个正常访问,一个出现502 Bad Gateway nginx/1.17.8。...
  8. oracle 自定义表类型赋值,Oracle自定义类型 Record + PL/SQL表
  9. python plt 批量修改全局样式
  10. hdu 4723 How Long Do You Have to Draw(贪心)
  11. HDR色调映射(一):基础概念
  12. linux安全擦除ssd命令,如何在不破坏SSD的情况下安全擦除SSD | MOS86
  13. ubuntu 18.04.2的初步配置
  14. 统计分析——假设检验、中心极限定理
  15. Docker容器运行
  16. 程序员找媳妇的要求是什么呢?
  17. 11张图告诉你什么是PMP项目管理,程序员必看
  18. 上海工商业分时电价机制调整对储能行业项目的影响分析
  19. IT项目经理必备的五种能力
  20. Qt 快速利用qt designer Layout绘制GUI界面

热门文章

  1. 影驰名人堂送的机器人_玩转GTX 1080Ti名人堂显示屏 影驰全新魔盘使用教程
  2. 日期格式转换成时间戳格式php,php日期转时间戳,指定日期转换成时间戳
  3. 阮一峰es6电子书_ES6理解进阶【大前端高薪训练营】
  4. html 上传文件_【实战篇】记一次文件上传漏洞绕过
  5. java如何对一个表达式开根号_作为一个零基础的新手,如何系统的自学Java和JavaEE开发技术?...
  6. puts遇到空格无法输出_输入一句英文,只包含字母和空格,如何输出这句英文中.....-黑马程序员技术交流社区...
  7. android按钮点击变化,Android实现按钮点击效果(第一次点击变色,第二次恢复)...
  8. 小米redmi_99.9元!Redmi首款智能手环评测:能“打赢”小米手环5吗?
  9. mysql手动写的时间_Mysql日期和时间函数
  10. python爬虫常见报错_Python爬虫常见HTTP响应状态码详解