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;
	}

然后相应的页面就会按照你代码中设置的字段排序,而点击表头也可以实现按照表头的某一字段排序,从而实现了动态排序

参考文档:

经验分享 程序员 微信小程序 职场和发展