作为一个后端程序员,前端做的确实很丑,所以就学习了一下layui框架的使用。数据表格主要的问题就是传输数据的问题,这里我用我的前后端代码来做一个实际的分解。
前端部分
可以到layui官网示例中找到数据表格,复制前台代码。也可以使用我的代码。
这部分主要更改的是自己的表格属性,传值的url。细节我都写在代码注释里面了
我的分页功能好像有点问题,现在还不知到问题在哪,可以先不完成这个功能。
html
<fieldset class="layui-elem-field layui-field-title" style="margin-top: 30px;"> <legend>学生信息表</legend> </fieldset> <table class="layui-hide" id="test" lay-filter="test"> </table> <script type="text/html" id="toolbarDemo"> <div class="demoTable"> 搜索ID: <div class="layui-inline"> <input class="layui-input" name="id" id="demoReload" autocomplete="off"> </div> <button class="layui-btn" type="button" id="search_btn" data-type="reload">搜索</button> </div> </script> <script type="text/html" id="barDemo"> <a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a> <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a> </script>
JavaScript
layui.use('table', function(){ var table = layui.table; var $ = layui.jquery; table.render({ elem: '#test' ,url:'ShowAllServlet' //url写自己的后端接口,这里我是通过servlet传递json实现的数据传递 ,toolbar: '#toolbarDemo' //开启头部工具栏,并为其绑定左侧模板 ,defaultToolbar: ['filter', 'exports', 'print', { //自定义头部工具栏右侧图标。如无需自定义,去除该参数即可 title: '提示' ,layEvent: 'LAYTABLE_TIPS' ,icon: 'layui-icon-tips' }] ,title: '用户数据表' ,id: 'test' //表格的id值,可用于其他功能调用刷新表格等 ,cols: [[ {type: 'checkBox', fixed: 'left'} ,{field:'id', title:'ID', width:320, unresize: true, sort: true} //field 是json数组的name值,title是表格的表头,width是表格宽度 edit是表格可以编辑,sort 属性true可以排序 ,{field:'name', title:'姓名', width:320, edit: 'text'} ,{field:'sex', title:'性别', width:320, edit: 'text'} ,{field:'birthday', title:'出生日期', width:320,edit: 'text'} ,{fixed: 'right', title:'操作', toolbar: '#barDemo', width:200} //操作是侧边工具栏的删除和编辑 ]] ,page: true //分页 });
后端部分
后端我采用的servlet传递json数组,
这是layui默认规定的数据格式code
- {
- "code": 0,
- "msg": "",
- "count": 1000,
- "data": [{}, {}]
- }
在我们的servlet要把自己的list数组转换成json格式,转换方法在我的代码里面,需要导的包可以私聊我发送。
我们serlvet的思路是把MysqL中的数据全部遍历出来,然后存到arraylist对象数组中,再统一转到layui需要的json格式。
Servlet
import COM.Bean.student; import COM.Dao.mannger; import com.fasterxml.jackson.databind.ObjectMapper; import javax.servlet.*; import javax.servlet.http.*; import javax.servlet.annotation.*; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @WebServlet(name = "ShowAllServlet", value = "/ShowAllServlet") //对应表格模块的url public class ShowAllServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws servletexception, IOException { doPost(request,response); } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws servletexception, IOException { request.setCharacterEncoding("utf-8");//设置相应的文本类型 response.setContentType("text/html;charset=utf-8");//设置响应类型,并防止中文乱码 ArrayList<student> stulist = new ArrayList<>(); //定义arraylist数组 mannger dao = new mannger(); dao.stulist(stulist); int count1 = stulist.size(); //count是数据的条数 String count = ""+ count1; Map<String, Object> result = new HashMap<String, Object>(); //下面的部分只需要改result.put(“data”,stulist)中的stulist ,换成你自己的list //System.out.println(paperslist); result.put("code", 0); result.put("msg", ""); result.put("count",count); result.put("data",stulist); System.out.println(result); ObjectMapper mapper = new ObjectMapper(); String json = mapper.writeValueAsstring (result); response.getWriter().print(json.toString()); //传递json给后端 System.out.println(result); } }
效果展示