java实现table列表的动态查询
部分代码不能公布,大家可以参考思路
需求:跟据input的值,每次点击button列表会刷新
代码实现
前端
<div class="control-group inline">
<div class="controls">
<label class="inline" style="width: 100px;">合作伙伴:</label>
<input type="text" name="parterName" id="parterName" value=""/>
<button type="button" class="btn btn-primary" id="qur_btn">查询</button>
</div>
</div>
<!-- 查询表格 -->
<div class="row-fluid toolbar">
<table id="parter_table" class="table table-hover table-bordered table-condensed table-striped">
<thead>
<tr>
<th style="text-align: center;">序号</th>
<th style="text-align: center;">合作伙伴</th>
<th style="text-align: center;">关键字</th>
</tr>
</thead>
<tbody></tbody>
</table>
</div>
var oTable;
$(function () {
initTable();//初始化表格
//查询按钮被触发
$("#qur_btn").click(function () {
var parterName = $('#parterName').val();
oTable.fnDraw();
});
})
/**
* @desc 初始化表格
*/
function initTable() {
oTable = $("#parter_table").myDataTable({
"scrollX": true,
"iDisplayLength": 10,
"aLengthMenu": [10, 20, 100],
"sAjaxSource": ctx + '/web/parterinfo/listParter.do',
"paramSelector": '#parterName',
"aoColumns": [
{bSortable: false, sName: "序号", sWidth: 40,},
{bSortable: false, sName: "合作伙伴", sWidth: 100,},
{bSortable: false, sName: "关键字", sWidth: 120,}
]
});
}
注意:paramSelector是根据那么来找的,前端input标签一定要有name,否则后端得不到值。
后端【省略接口】
controller层
@RequestMapping(value = "/listParter.do", method = RequestMethod.POST)
@ResponseBody
public Map<String, Object> listParter(int iDisplayStart, int iDisplayLength,
@RequestParam(value = "parterName", required = false, defaultValue = "") String parterName) {
Map<String, Object> map = new HashMap<>(20);
PageBean<ParterinfoEntity> pageBean = iParterinfoService
.getParterInfos(iDisplayStart, iDisplayLength, parterName);
// 处理返回结果
List<List<Object>> aaData = new ArrayList<List<Object>>();
if (!super.isEmpty(pageBean.getData())) {
// 产品集合转换成map
for (ParterinfoEntity bean : pageBean.getData()) {
List<Object> data = new ArrayList<Object>();
data.add(bean.getParterID());//序号
data.add(bean.getParterName());
data.add("合作伙伴");
aaData.add(data);//4
}
}
map.put("iTotalRecords", pageBean.getCount());
map.put("iTotalDisplayRecords", pageBean.getCount());
map.put("aaData", aaData);
return map;
}
service层
@Service
public class ParterinfoServicelmpl implements IParterinfoService{
private static Logger logger = LoggerFactory.getLogger(ParterinfoServicelmpl.class);
@Resource
private IParterinfoReadDao iParterinfoReadDao;
@Override
public PageBean<ParterinfoEntity> getParterInfos(int start, int length, String parterName) {
PageBean<ParterinfoEntity> pageBean = new PageBean<>();
pageBean.setStart(start);
pageBean.setLimit(length);
// 查询一页的数据
pageBean.setData(iParterinfoReadDao.listParters(start, length , parterName));
// 查询总记录数量
long count = iParterinfoReadDao.getParterCount(parterName);
pageBean.setCount(count);
return pageBean;
}
}
dao层
@Repository
public class ParterinfoReadDaollmpl implements IParterinfoReadDao {
@Resource
private SqlSession sqlsessionRead;
@Override
public List<ParterinfoEntity> listParters(int start, int length, String parterName) {
Map<String, Object> params = new HashMap<String, Object>();
params.put("start", start);
params.put("limit", length);
params.put("parterName",parterName);
return this.sqlsessionRead.selectList("read.parterinfos.listParters",params);
}
@Override
public long getParterCount(String parterName) {
Map<String, Object> params = new HashMap<String, Object>();
params.put("parterName",parterName);
return this.sqlsessionRead.selectOne("read.parterinfos.parterCount",params);
}
}
mapper
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="read.parterinfos">
<select id="listParters" parameterType="java.util.Map" resultType="parterinfoEntity">
select p.ParterID , p.ParterName
from Parterinfo p
where p.Status = 1
<if test="parterName != null and parterName != ''"> AND p.ParterName = #{parterName} </if>
order by ParterID ASC
<if test="start >=0 and limit>0">limit #{start},#{limit}</if>
</select>
<select id="parterCount" parameterType="java.util.Map" resultType="long">
select count(ParterID) from Parterinfo p where p.Status = 1
<if test="parterName != null and parterName != ''"> AND p.ParterName = #{parterName} </if>
</select>
</mapper>