layui數據表格導入數據
作為一個後端程式設計師,前端做的確實很醜,所以就學習了一下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); } }
效果展示