jeesite4实现页面list动态排序
背景及需求:两个页面都是请求的数据都是一张表,同一个实体,但是我第一个页面希望按照某一字段排序,第二张表按照默认update_time来排序,这个需求你们是怎么实现动态排序的
发现jeesite是通过注解的形式配置mybatis
例如:
默认的排序也是@table注解中的order by
然后mapper.xml也就是SQL的XML文件中封装了:
<!-- 查询数据 <select id="findList" resultType="PyNarcotics"> SELECT ${sqlMap.column.toSql()} FROM ${sqlMap.table.toSql()} <where> ${sqlMap.where.toSql()} </where> ORDER BY ${sqlMap.order.toSql()} </select> -->
不管你是自己重写扩展SQL还是默认用框架封装好的,只要有ORDER BY ${sqlMap.order.toSql()}就可以实现点击表头就可以实现按照表头某一字段排序
如果想实现动态排序,则应该在对应的list页面请求的controller方法中加上:
/** * 查询列表数据 */ @RequiresPermissions("py:pyNarcotics:view") @RequestMapping(value = "listData") @ResponseBody public List<PyNarcotics> listData(PyNarcotics pyNarcotics, HttpServletRequest request, HttpServletResponse response) { pyNarcotics.setStateNum(1); //设置在手人员默认按照监控时间来排序 if(pyNarcotics.getOrderBy() == null){ pyNarcotics.setOrderBy("control_time desc"); } List<PyNarcotics> page = pyNarcoticsService.findPyNarcoticsList(pyNarcotics); return page; }
然后相应的页面就会按照你代码中设置的字段排序,而点击表头也可以实现按照表头的某一字段排序,从而实现了动态排序
参考文档: