layui 传递前端请求_前端请求后端,后端查询完毕传到前端 ,用layui 将 数据分页...

本文介绍了使用 layui 框架进行前端请求,并通过后端查询处理后,将数据分页展示的方法。前端利用 layui 的分页组件,通过 AJAX 请求获取数据,后端创建 Controller 接口接收请求,使用 Pagination 和 Page 类进行数据处理和分页计算,最终将结果转化为前端可展示的格式。
摘要由CSDN通过智能技术生成

前端:我用的是layui框架的分页

js 文件

layui.config({

base : "script/"

}).use(['form','layer','jquery','laypage'],function(){

var form = layui.form(),

layer = parent.layer === undefined ? layui.layer : parent.layer,

laypage = layui.laypage,

$ = layui.jquery;

//分页参数

var currentPageAllAppoint = 1;

var totalPageAllAppoint = 0;

var dataLength = 0;

//加载页面数据

var deskData = [];

$(document).ready(function(){

getDataInfo(); // ajax请求

toPage();// 分页

});

function deskDataList(data){

$(".desk_content").html(renderDate(data,currentPageAllAppoint));

//渲染数据

function renderDate(data,curr){

var dataHtml = '';

var currData = data;

if(currData != null && currData.length != 0){

for(var i=0;idataHtml += '

'

+  ''

+  ''+isNull(currData[i].name)+''

+  ''+isNull(currData[i].index)+''

+  ''+isNull(currData[i].roomId)+''

+  ''+isNull(currData[i].players)+''

+  ''+isNull(currData[i].descript)+''

+  ''+isNull(currData[i].observers)+''

+  ''+format(currData[i].createTime)+''

+'';

}

}else{

dataHtml = '

暂无数据';

}

return dataHtml;

}

}

function getDataInfo(){

console.log("getDataInfo");

$.ajax({

type:"post",

async:false,

url:"../../../bim/desk/findDesk",

data:{curr : currentPageAllAppoint},

success:function(data,status){

console.log(data);

totalPageAllAppoint =  data.content.last;//总页数(后台返回)

console.log(currentPageAllAppoint);

console.log(totalPageAllAppoint);

deskDataList(data.content.data);

}

});

}

function toPage(data){

//分页

var nums = 10; //每页出现的数据量

laypage({

cont : "page",

pages : totalPageAllAppoint,//TODO 获取后台传进的数据Page中的totalCount 总条数

curr : currentPageAllAppoint,

jump : function(obj,first){

//?第二次的时候怎么判断

currentPageAllAppoint = obj.curr;

if(!first){

getDataInfo();

}

$('.desk_list thead input[type="checkbox"]').prop("checked",false);

form.render();

}

})

}

后端:主要是写一个接口来接收传递过来的数据

第一步:代码实现Controller 类

@RestController

@RequestMapping(path = "/bim/desk",produces = MediaType.APPLICATION_JSON_VALUE)

public class DeskContorller extends BaseController {

@Autowired

private DeskService deskService;

@Autowired

private DeskTransfer deskTransfer;

@RequestMapping(path = "/findDesk")

public Result> findDeskByName( @RequestParam("curr") Integer curr,HttpSession session) throws BizException{

Paginationdesk =  this.deskService.findDeskByName((curr - 1) * 10,10);

PagedeskData = desk == null ? null : Page.transfer(desk, this.deskTransfer, curr, 10);

return Result.createSuccessResultFrom(deskData);

}

}

注释:DeskData作为前端的请求结果,传给前端的字段,以及查询内容

具体的查询语句就自己发挥就好,mysql数据库只要加上start,limit就好了

1,Pagination类:(可以写成公共类)

public final class Paginationimplements java.io.Serializable {

private static final long serialVersionUID = -9130388649947529938L;

private final int totalCount; // 总条数:用在Page计算最后一页

private final ListpageRecords; // 数据量

public Pagination(ListpageRecords, int totalCount) {

this.pageRecords = CollectionUtils.isEmpty(pageRecords) ? Collections.emptyList() : Collections.unmodifiableList(pageRecords);

this.totalCount = Math.max(0, totalCount);

}

public Pagination(Record[] pageRecords, int totalCount) {

this(pageRecords == null ? Collections.emptyList() : Arrays.asList(pageRecords), totalCount);

}

public ListgetPageRecords() {

return this.pageRecords;

}

public int getTotalCount() {

return this.totalCount;

}

}

2,Page的实现 (可以写成公共类)

package me.mjzx.foundation.web;

import java.util.ArrayList;

import java.util.Collections;

import java.util.List;

import org.apache.commons.collections4.CollectionUtils;

import me.mjzx.foundation.Pagination;

import me.mjzx.foundation.Transfer;

public final class Page{

// 将从后台取出的Pagination桌子信息,转化成Page的

public static Pagetransfer(Paginationpagination,DeskTransfertransfer,int currPage,

int pageSize) {

Listrecords = Collections.emptyList();

final ListpageRecords = pagination == null ? null : pagination.getPageRecords();

final int totalCount = pagination == null ? 0 : Math.max(0, pagination.getTotalCount());

if (CollectionUtils.isNotEmpty(pageRecords) && transfer != null) {

records = new ArrayList<>(pageSize = Math.max(pageSize, pageRecords.size()));

for (final Record record : pageRecords) {

records.add(transfer.translate(record));

}

}

return new Page<>(currPage, pageSize, totalCount % pageSize == 0 ? totalCount / pageSize : totalCount / pageSize + 1, records);

}

private final int curr; // 当前页 ,

private final int size;// 限制长度

private final int last; // 最后一页

private final Listdata; // 当前页的数据

public Page(int curr, int size, int last, Listdata) {

this.curr = Math.max(1, curr);

this.size = Math.max(1, size);

this.last = Math.max(1, last);

this.data = Collections.unmodifiableList(data);

}

.....此处省略getter ,setter方法

}

3,Transfer转换类

public class DeskTransfer {

@Override

public Desk translate(DeskData value) {

// TODO Auto-generated method stub

return null;

}

@Override // 将Desk转换成DeskData

public DeskData translate(Desk record) {

DeskData deskData = new DeskData();

try {

deskData.setDeskId(record.getId());

deskData.setDescript(record.getDescript());

deskData.setIndex(record.getIndex());

deskData.setName(record.getName());

deskData.setObservers(record.getObservers().toString());

deskData.setRoomId(record.belongTo() == null ? null : record.belongTo().getId());

Match4Ddz match = this.matchService.findMatchByDesk(record.getId());

Listusers = match == null ? null : this.joinService.findJoinUsersByMatch(match.getId());

deskData.setPlayers(users == null || users.size() == 0 ? null : this.tranf(users));

deskData.setCreateTime(record.getCreateTime());

} catch (BizException e) {

e.printStackTrace();

}

return deskData;

}

}

4,DeskData的字段(传到前端显示的字段)

public class DeskData extends BaseData{

private static final long serialVersionUID = 1431046417980934140L;

private Integer deskId;

private String name;

private Integer index;

private Integer roomId;

private Listplayers;

private String descript;

private String observers;

private long createTime;

....此处省略getter setter方法

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: layui是一款基于jQuery的前端UI框架,它不仅提供了丰富的UI组件,还提供了一些方便的工具函数和方法,其中就包括ajax请求后端数据的方法。 在使用layui实现ajax请求获取后端数据并展示在前端的过程中,我们需要遵循以下步骤: 1. 引入layui的相关资源文件: 在HTML页面中引入layui的资源文件,包括layui.js和相关的CSS文件,确保可以正确使用layui的功能。 2. 使用layui的ajax方法发送请求: 通过layui的ajax方法发送GET或POST请求,向后端发送数据请求。可以指定请求的URL、请求的类型、请求数据等参数。例如: layui.$.ajax({ url: '后端接口地址', type: 'GET', // 或 'POST' data: { 参数名1: 参数值1, 参数名2: 参数值2 }, success: function(res){ // 请求成功的回调函数 // res为后端返回的数据 }, error: function(){ // 请求失败的回调函数 } }); 3. 处理后端返回的数据: 在请求成功的回调函数中,可以对后端返回的数据进行处理。可以使用layui的组件或自定义的方法将数据展示在前端页面上。例如: layui.use(['table'], function(){ var table = layui.table; // 渲染表格组件,并将后端返回的数据填充到表格中 table.render({ elem: '#tableId', // 表格元素的ID data: res.data, // 后端返回的数据 cols: [[ {field: '字段名1', title: '标题1'}, {field: '字段名2', title: '标题2'}, // ... ]] }); }); 通过上述步骤,我们可以使用layui的ajax方法从后端获取数据,并将数据展示在前端页面上。当然,在实际应用中,我们需要根据具体需求,对请求和展示的逻辑进行进一步的处理。 ### 回答2: 在前端使用Layui和Ajax来获取后端数据并展示,可以按照以下步骤操作: 1. 首先,在HTML页面中引入Layui的相关样式表和脚本文件,确保页面正常加载Layui的效果。 2. 在HTML页面中创建一个容器,用于展示后端数据。可以使用Layui的表格组件或其他适合的组件,具体根据后端返回的数据类型和显示需求来确定。 3. 使用Ajax向后端发送请求,获取数据。可以使用Layui的Ajax方法`$.ajax()`来发送GET或POST请求,其中包括请求的URL、请求数据等参数。 4. 在Ajax的回调函数中,处理后端返回的数据并展示在页面中。根据后端返回的数据类型,可以使用Layui的表格组件的方法(如`table.render()`)来渲染表格,并将数据填充到表格中,或者直接使用页面操作DOM的方式来展示数据。 5. 根据需求,可以对数据进行排序、筛选、分页等操作,Layui提供了相应的组件和方法,可以根据实际情况进行调整。 6. 最后,根据需要可以添加其他交互效果,如点击事件、弹窗等,以提升用户体验。 需要注意的是,获取后端数据并展示在前端是一个异步的过程,所以在Ajax请求的过程中,页面上可能需要显示一些加载中的提示,以避免用户的不良体验。 以上就是使用Layui和Ajax来获取后端数据并展示在前端的基本步骤。具体的操作根据实际情况会有所不同,可能需要根据项目需求进行一些定制化的开发。 ### 回答3: 要在前端展示后端数据,可以借助layui框架的ajax功能。 首先,在前端页面中引入layui库,并定义一个div容器,用于展示后端数据。 然后,使用layui的ajax方法发送请求,获取后端数据。ajax方法需要配置接口地址、请求类型和回调函数等参数。 在回调函数中,可以获取到从后端返回的数据。可以使用layui的laytpl模板引擎,将数据和HTML模板结合,渲染出需要展示的内容。 具体操作步骤如下: 1. 在页面中引入layui库和相关样式: ``` <link rel="stylesheet" href="layui/css/layui.css"> <script src="layui/layui.all.js"></script> ``` 2. 在HTML页面中定义一个展示后端数据的容器: ``` <div id="container"></div> ``` 3. 使用layui的ajax方法发送请求并获取后端数据: ``` layui.use('jquery', function(){ var $ = layui.$; $.ajax({ url: '后端接口地址', type: 'GET', success: function(data){ // 后端返回的数据将存储在data中 // 在这里使用laytpl模板引擎渲染数据 var tpl = $('#template').html(); // 获取HTML模板的内容 var render = layui.laytpl(tpl); // 初始化laytpl模板 var html = render.render(data); // 渲染数据 $('#container').html(html); // 将渲染好的内容显示在容器中 }, error: function(){ // 处理错误情况 } }); }); ``` 4. 在页面中定义与数据对应的HTML模板: ``` <script type="text/html" id="template"> {{# layui.each(d, function(index, item){ }} <div>{{ item.name }}</div> {{# }); }} </script> ``` 以上就是如何使用layui的ajax方法获取后端数据并在前端展示的方法。请根据实际情况修改代码中的接口地址和数据渲染逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值