1、如何接收参数,这个代码是参考老外的代码。不过核心逻辑老外写的太差了。
public class DataTablesInput {
/**
* Draw counter. This is used by DataTables to ensure that the Ajax returns
* from server-side processing requests are drawn in sequence by DataTables
* (Ajax requests are asynchronous and thus can return out of sequence).
* This is used as part of the draw return parameter (see below).
*/
@NotNull
@Min(0)
private Integer draw;
/**
* Paging first record indicator. This is the start point in the current
* data set (0 index based - i.e. 0 is the first record).
*/
@NotNull
@Min(0)
private Integer start;
/**
* Number of records that the table can display in the current draw. It is
* expected that the number of records returned will be equal to this
* number, unless the server has fewer records to return. Note that this can
* be -1 to indicate that all records should be returned (although that
* negates any benefits of server-side processing!)
*/
@NotNull
@Min(-1)
private Integer length;
/**
* Global search parameter.
*/
@NotNull
private SearchParameter search;
/**
* Order parameter
*/
@NotEmpty
private List<OrderParameter> order;
/**
* Per-column search parameter
*/
@NotEmpty
private List<ColumnParameter> columns;
public DataTablesInput() {
this.search = new SearchParameter();
this.order = new ArrayList<OrderParameter>();
this.columns = new ArrayList<ColumnParameter>();
}
public Integer getDraw() {
return draw;
}
public void setDraw(Integer draw) {
this.draw = draw;
}
public Integer getStart() {
return start;
}
public void setStart(Integer start) {
this.start = start;
}
public Integer getLength() {
return length;
}
public void setLength(Integer length) {
this.length = length;
}
public SearchParameter getSearch() {
return search;
}
public void setSearch(SearchParameter search) {
this.search = search;
}
public List<OrderParameter> getOrder() {
return order;
}
public void setOrder(List<OrderParameter> order) {
this.order = order;
}
public List<ColumnParameter> getColumns() {
return columns;
}
public void setColumns(List<ColumnParameter> columns) {
this.columns = columns;
}
public List<ColumnParameter> addColumn(ColumnParameter column) {
if(Collections3.isEmpty(columns)){
columns = new ArrayList<ColumnParameter>();
}
columns.add(column);
return columns;
}
}
2、如何输出
public class DataTablesOutput<T> {
/**
* The draw counter that this object is a response to - from the draw
* parameter sent as part of the data request. Note that it is strongly
* recommended for security reasons that you cast this parameter to an
* integer, rather than simply echoing back to the client what it sent in
* the draw parameter, in order to prevent Cross Site Scripting (XSS)
* attacks.
*/
@JsonView(View.class)
private Integer draw;
/**
* Total records, before filtering (i.e. the total number of records in the
* database)
*/
@JsonView(View.class)
private Long recordsTotal;
/**
* Total records, after filtering (i.e. the total number of records after
* filtering has been applied - not just the number of records being
* returned for this page of data).
*/
@JsonView(View.class)
private Long recordsFiltered;
/**
* The data to be displayed in the table. This is an array of data source
* objects, one for each row, which will be used by DataTables. Note that
* this parameter's name can be changed using the ajaxDT option's dataSrc
* property.
*/
@JsonView(View.class)
private List<Map<String, String>> data;
private List<T> sourceData;
/**
* Optional: If an error occurs during the running of the server-side
* processing script, you can inform the user of this error by passing back
* the error message to be displayed using this parameter. Do not include if
* there is no error.
*/
@JsonView(View.class)
private String error;
public interface View {
}
public Integer getDraw() {
return draw;
}
public void setDraw(Integer draw) {
this.draw = draw;
}
public Long getRecordsTotal() {
return recordsTotal;
}
public void setRecordsTotal(Long recordsTotal) {
this.recordsTotal = recordsTotal;
}
public Long getRecordsFiltered() {
return recordsFiltered;
}
public void setRecordsFiltered(Long recordsFiltered) {
this.recordsFiltered = recordsFiltered;
}
public List<Map<String, String>> getData() {
return data;
}
public void setData(List<Map<String, String>> data) {
this.data = data;
}
public List<T> getSourceData() {
return sourceData;
}
public void setSourceData(List<T> sourceData) {
this.sourceData = sourceData;
}
public String getError() {
return error;
}
public void setError(String error) {
this.error = error;
}
}
3、中间过程,通过另外一个查询的参数Searchable,可以百度‘开涛的博客’,将DataTablesInput传来的参数赋值到searchable来,包括分页和排序等,放入Service查询出来之后,再格局DataTablesInput的columns中表单需要展现的字段取出,最后封装到DataTableOutput中去。
分享到:
相关推荐
- **spring-data-jpa-datatables**:可能涉及到使用Spring Data JPA与前端DataTable库集成,进行数据展示和分页。 - **spring-data-jpa-demo**:一个完整的Spring Data JPA演示应用,涵盖了多种使用场景。 4. **...
这将允许您处理DataTables发送的针对Spring @RestController页面上每条信息绘制的Ajax请求(即,在分页,排序,搜索等时)。 对于MongoDB副本,请参阅 。 例子: @RestControllerpublic class UserRestController {...
`Mvc.JQuery.Datatables`是一个非常实用的插件,它允许开发者轻松地将流行的JQuery Datatables库与ASP.NET MVC框架集成,从而实现高效、动态和交互式的表格数据展示。这个插件极大地简化了在.NET环境中使用...
弹簧启动数据表该项目是使用的示例Spring Boot项目怎么跑mvn clean spring-boot:run 然后打开特征Datahome是在文件home.js中定义的,具有用户类的列名称匹配属性: $(document).ready(function() {var table = $('...
2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; ...
spring-data-jpa-datatables-sample 该项目是使用的示例Spring Boot项目怎么跑mvn spring-boot:run然后打开特征Datahome是在文件home.js中定义的,具有用户类的列名称匹配属性: $(document).ready(function() {var ...
在本项目中,“Datatables实现多选框与AJAX返回数据 JAVA版”是针对Java开发者的,它涉及到使用Datatables与Spring MVC框架结合,通过AJAX技术动态加载并处理服务器端的数据,同时实现表格内的多选框功能,以提升...
这是一个后台管理系统 采用spring boot,集成freemarker,shiro,spring cache,spring data jpa 前端采用bootstrap,dataTables 等等一些跟bootstrap集成的插件 记住要编译过之后在执行下面的操作 访问地址:...
8. Spring整合:在`Spring_DataTable_Test`这个例子中,可能涉及到的是Spring MVC与DataTables的集成。在Spring MVC中,控制器需要处理请求,返回JSON格式的数据供DataTables使用。这通常涉及编写一个处理请求的方法...
Spring MVC考试系统源码 一个简单在在线考试系统。分为管理出题和考试界面考试。 后台 试卷管理(增、删、改、查) 题库管理(增、删、改、查) 成绩查看(查) 用户查看(查) 前台 选择试题 考试界面(考试完出成绩...
jquery-datatables1.10-mvc5-服务器端 JQUERY DATATABLES 1.10+和ASP.NET MVC 5服务器端 Datatables是jQuery Javascript库的高度灵活的插件。 数据表将高级交互控件(如分页,搜索和多列排序)添加到任何HTML表中。 ...
1、Spring MVC 2、mybatis (mybatis-generator) 3、shiro 4、fastjson (json 处理) 5、淘宝客SDK 6、等.. 前端 1、Bootstrap 2、JQuery 3、fancybox 4、datatables 5、other... Module说明 1、core: 通用类库 2...
在Spring4 MVC中集成MyBatis,可以创建一个DAO(Data Access Object)层,通过MyBatis的SqlSessionFactory和SqlSession对象来执行SQL操作。 动态生成表格是指前端根据从后端接收到的JSON数据动态渲染表格。通常,...
SSM+Mybatis+datatables+H-ui后台管理系统是一个典型的Java Web项目,它结合了Spring、Spring MVC、Mybatis和H-ui等多个技术组件,旨在构建一个功能完善的后台管理平台。这个系统非常适合Java初学者用来学习后端分页...
安装包Mvc.JQuery.DataTables 安装包Mvc.JQuery.DataTables.Templates * 将所有IQueryable转换为实时数据网格。 经过测试: Linq到对象 实体框架 Lucene.Net.Linq 包装非常全面的jquery datatables插件。 支持...
在`SpringMVC_datatables_moment` 这个项目中,很可能使用Spring MVC作为后端框架,提供JSON数据给前端的DataTables。在Spring MVC中,你可以将日期转换为符合JSON标准的格式,如ISO 8601,然后在前端使用`moment.js...
它集成了大量常用的第三方库配置,如DataSource、JPA、Thymeleaf等,开发者无需繁琐的配置就能快速启动项目。在本案例中,Spring Boot作为后端基础框架,负责处理HTTP请求,提供RESTful API服务。 2. **MybatisPlus...
SSM整合Datatables实例Demo是将SpringMVC、Spring和MyBatis这三大流行Java Web框架集成,并结合Datatables插件实现数据展示和交互的示例项目。这个Demo旨在帮助开发者理解如何在实际项目中有效地利用这些技术进行...
在本文中,我们将深入探讨如何在DataTables中实现行分组信息的展开与折叠功能。DataTables是一款强大的JavaScript库,用于增强HTML表格的功能,提供排序、过滤、分页等多种高级特性。行分组功能允许用户将相关的数据...
在Java后端,我们通常使用Servlet或者Spring MVC来接收和解析这些请求。例如,使用`HttpServletRequest`对象,我们可以调用`getParameter()`或`getParameterMap()`方法来获取请求参数。对于多维数组,可能需要使用`...