初始時數據庫用戶的狀態爲:java
初始時用戶列表頁面的顯示:sql
經過代碼進行動態顯示的效果圖:數據庫
進行修改數據庫的狀態:session
顯示出來的效果:jsp
只需在user_list.jsp找到狀態的那一列進行一個判斷便可,將其代碼修改成:測試
<s:if test="#user.state==1"> <td class="td-status"> <span class="layui-btn layui-btn-normal layui-btn-mini">已啓用</span> </td> </s:if> <s:else> <td class="td-status"> <span class="layui-btn layui-btn-danger layui-btn-mini"> 未啓用 </span> </td> </s:else>
接下來須要進行實現的功能有ui
一、停用spa
二、編輯3d
三、修改code
四、查詢
五、添加
六、批量刪除
能夠將上面的功能分爲兩個模塊:
一、查詢模塊
二、增刪改
須要在數據庫中添加一個字段createtime
在user實體中進行添加:
private String createtime;//經過添加該字段方便進行查詢
須要用到的流程圖:
三個參數,分別是頁面搜索部分start表示開始日期 end標識結束日期 username表示用戶名,在本次的根據條件查詢須要訪問二次數據庫,一次是數目,一次是list
在數據庫中進行測試一下:
加入limit表示的是分頁,須要使用到pageBean
在user-list.jsp中加入搜索表單的action中加入:
<form class="layui-form layui-col-md12 x-so" action="${pageContext.request.contextPath }/UserAction_getPageBeanByCondition"> <input class="layui-input" placeholder="開始日" name="start" id="start" "> <input class="layui-input" placeholder="截止日" name="end" id="end""> <input type="text" name="username" placeholder="請輸入用戶名" autocomplete="off" class="layui-input""> <button class="layui-btn" lay-submit="" lay-filter="sreach"> <i class="layui-icon"></i> </button> </form>
在User_Action.java中寫入getPageBeanByCondition方法,再其中封裝pageBean:
//經過條件獲得pageBean public String getPageBeanByCondition() throws Exception { //若是用戶傳遞的start爲空,那麼咱們將時間設置爲0001-01-01 if(start.isEmpty()) { start="0001-01-01"; } //若是用戶傳遞的end爲空,那麼咱們將時間設置爲9999-12-31 if(end.isEmpty()) { end="9999-12-31"; } //username爲空的話,hibername能夠幫咱們解決問題 PageBean userPageBean = userService.getuserPageBeanByCondition(currentPage,start,end,user.getUsername()); //進行對數據的回顯,回顯的時候須要在user-list.jsp獲取 ActionContext.getContext().put("start", start); ActionContext.getContext().put("end", end); ActionContext.getContext().put("username", user.getUsername()); ActionContext.getContext().put("userPageBean", userPageBean); return "userList"; }
傳遞三個參數給userService.java
public PageBean getuserPageBeanByCondition(Integer currentPage, String start, String end, String username, ) { //獲得符合條件的用戶數目 Integer totalCount = userDao.getAllUserByCondition(start,end,username); PageBean pageBean = new PageBean(currentPage, 6, totalCount);//6表示頁面顯示的數量 //todo 根據條件獲得list並封裝list List<User> list = userDao.getPageBeanListByCondition(pageBean,start,end,username); pageBean.setList(list); return pageBean; }
在userDao中寫入sql語句:
//一、2經過開始日期與結束日期還有用戶名條件進行查詢 //1 public Integer getAllUserByCondition(String start, String end, String username) { Session session = getHibernateTemplate().getSessionFactory().getCurrentSession(); String sql = "select count(*) from user where createtime > ? and createtime < ? and username like ?; NativeQuery query = session.createSQLQuery(sql); query.setParameter(1, start); query.setParameter(2, end); query.setParameter(3, "%"+username+"%"); BigInteger result = (BigInteger) query.uniqueResult(); return result.intValue(); } //2 public List<User> getPageBeanListByCondition(PageBean pageBean, String start, String end, String username) { Session session = getHibernateTemplate().getSessionFactory().getCurrentSession(); //須要三個條件 String sql = "select * from user where createtime > ? and createtime < ? and username like ? limit ?,?"; NativeQuery query = session.createSQLQuery(sql); query.addEntity(User.class); query.setParameter(1, start); query.setParameter(2, end); query.setParameter(3, "%"+username+"%"); query.setParameter(4, pageBean.getStart()); query.setParameter(5, pageBean.getPageSize()); List list = query.list(); return list; }
爲防止在進行查詢時候點擊下方分頁的上一頁以及其它查詢全部,在user-list.jsp中進行參數的拼接:
<div class="page"> <div> <a class="prev" href="${pageContext.request.contextPath }/UserAction_getPageBeanByCondition?currentPage=<s:property value="#userPageBean.currentPage-1"/>&start=<s:property value="start"/>&end=<s:property value="end"/>&username=<s:property value="username"/>"><<</a> <s:if test="#userPageBean.currentPage-2>0"> <a class="num" href="${pageContext.request.contextPath }/UserAction_getPageBeanByCondition?currentPage=<s:property value="#userPageBean.currentPage-2"/>&start=<s:property value="start"/>&end=<s:property value="end"/>&username=<s:property value="username"/>"> <s:property value="#userPageBean.currentPage-2" /> </a> </s:if> <s:if test="#userPageBean.currentPage-1>0"> <a class="num" href="${pageContext.request.contextPath }/UserAction_getPageBeanByCondition?currentPage=<s:property value="#userPageBean.currentPage-1"/>&start=<s:property value="start"/>&end=<s:property value="end"/>&username=<s:property value="username"/> "> <s:property value="#userPageBean.currentPage-1" /> </a> </s:if> <span class="current"> <s:property value="#userPageBean.currentPage" /> </span> <s:if test="#userPageBean.currentPage+1<=#userPageBean.totalPage"> <a class="num" href="${pageContext.request.contextPath }/UserAction_getPageBeanByCondition?currentPage=<s:property value="#userPageBean.currentPage+1"/>&start=<s:property value="start"/>&end=<s:property value="end"/>&username=<s:property value="username"/> "> <s:property value="#userPageBean.currentPage+1" /> </a> </s:if> <s:if test="#userPageBean.currentPage+2<=#userPageBean.totalPage"> <a class="num" href="${pageContext.request.contextPath }/UserAction_getPageBeanByCondition?currentPage=<s:property value="#userPageBean.currentPage+2"/>&start=<s:property value="start"/>&end=<s:property value="end"/>&username=<s:property value="username"/> "> <s:property value="#userPageBean.currentPage+2" /> </a> </s:if> <a class="num" href="${pageContext.request.contextPath }/UserAction_getPageBeanByCondition?currentPage=<s:property value="#userPageBean.totalPage"/>&start=<s:property value="start"/>&end=<s:property value="end"/>&username=<s:property value="username"/> ">尾頁</a> <a class="next" href="${pageContext.request.contextPath }/UserAction_getPageBeanByCondition?currentPage=<s:property value="#userPageBean.currentPage+1"/>&start=<s:property value="start"/>&end=<s:property value="end"/>&username=<s:property value="username"/> ">>></a> </div> </div>
進行對輸入的三個參數回顯到輸入框中
修改user.jsp中該部分的代碼:
<form class="layui-form layui-col-md12 x-so" action="${pageContext.request.contextPath }/UserAction_getPageBeanByCondition"> <input type="hidden" name="isDelete" value="<s:property value="isDelete"/>"> <input class="layui-input" placeholder="開始日" name="start" id="start" value="<s:property value="start"/>"> <input class="layui-input" placeholder="截止日" name="end" id="end" value="<s:property value="end"/>"> <input type="text" name="username" placeholder="請輸入用戶名" autocomplete="off" class="layui-input" value="<s:property value="username"/>"> <button class="layui-btn" lay-submit="" lay-filter="sreach"> <i class="layui-icon"></i> </button> </form>
最終效果: