博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
jeesite使用心得(一)
阅读量:2061 次
发布时间:2019-04-29

本文共 3185 字,大约阅读时间需要 10 分钟。

UPDATE ${table.name}
<#list table.columnList as c> <#if c.isEdit?? && c.isEdit == "1">
${c.name} = ${"#"}{${c.javaFieldId}},
WHERE id = ${"#"}{id}
jeesite是一个很好用的开源框架,尤其是权限角色的管理,不需要改什么就可以直接拿来用。
但使用中还是有一点不满足需求,就试着改了一下。

用jeesite自带的代码生成器,生成的实例如下:

@RequiresPermissions("test:testData:view")	@RequestMapping(value = {"list", ""})	public String list(TestData testData, HttpServletRequest request, HttpServletResponse response, Model model) {		Page
page = testDataService.findPage(new Page
(request, response), testData); model.addAttribute("page", page); return "jeesite/test/testDataList"; }
调用abstract class CrudService的findPage方法

/**	 * 查询分页数据	 * @param page 分页对象	 * @param entity	 * @return	 */	public Page
findPage(Page
page, T entity) { entity.setPage(page); page.setList(dao.findList(entity)); return page; }
这样查到的是一个对象集合,也可以带参数查询,只要是参数的属性即可。
但是如果需要太多,查询条件不是一个表对应的对象属性,查询到的结果是几个表关联查询的结果,
以前的处理方式是,封装成HashMap<String,Object>的形式.查到的结果是List<HashMap<String,Object>>
这样就不需要封装到对象,交流一下代码。

jsp:

模糊搜索:
  • 本来有很多参数,就不都贴出来了。
    会按name值查询(orderNo)

    controller:

    @RequiresPermissions("contract:busMddkApplication:view")	@RequestMapping(value = { "list", "" })	protected String list(BusMddkApplicationVo BusMddkApplicationVo, HttpServletRequest request,			HttpServletResponse response, Model model) {		Page
    page = new Page
    (request, response); Map
    params = request.getParameterMap(); List
    > list = busMddkApplicationService.findPage(page, params); return "modules/bus/contract/busMddkApplicationList"; }
    这里的params会有一个{orderNo=}
    page对象,可以封装成任意一个entity,这里我封装的是这个controller对应的entity
    调用service的重写的findPage(Page<BusMddkApplication> page, Map<String, Object> params)方法

    dao:

    List
    > findListByPage(@Param("page")Page
    page,@Param("params")Map
    params);
    注意@param注解,一定要加,否则找不到参数的错。

    mapper.xml:

    a.application_id AS "applicationId", a.order_no AS "orderNo", b.merchants AS "merchants", c.application_name AS "applicationName", ar1.name AS "pArea.name", ar2.name AS "cArea.name"
    LEFT JOIN sys_area ar1 ON ar1.id = a.area_id_provice LEFT JOIN sys_area ar2 ON ar2.id = a.area_id_city LEFT JOIN bus_mddk_application_customer c ON c.application_id = a.application_id LEFT JOIN bus_mddk_application_office b ON b.application_id = a.application_id
    这样就多表关联查询,将结果封装到Map
    jsp回显数据:

    也是遍历之后,对象.属性的方式,可以根据map的key值获取value值。
    关于updateSelective方法,jeesite没有提供这个方法。他都是先查再更新。
    但是有时候页面的数据太多,updateSelective方法比较实用,如果传过来的参数有值就更新,没有就保持原来的值。
    jeesite代码生成的模板在resources/templates/modules/gen文件夹下,
    找到dao下的mapper.xml
    增加下面的代码:

    再生成的就有updateSelective方法了。

    转载地址:http://rfmlf.baihongyu.com/

    你可能感兴趣的文章
    浏览器主页被篡改修复
    查看>>
    FFmpeg - 新老接口对比问题
    查看>>
    Windows下MinGW编译ffmpeg库
    查看>>
    SDL在windows下使用 - 显示YUV
    查看>>
    三种方式YUV420转RGB24/BGR24,实测可用
    查看>>
    Windows下使用VS2015编译openssl库
    查看>>
    Win10+VS2015编译libcurl
    查看>>
    Windows下使用jsoncpp
    查看>>
    Ubuntu下测试使用Nginx+uWsgi+Django
    查看>>
    Windows下编译x264
    查看>>
    visual studio调试内存泄漏工具
    查看>>
    开源Faac实现PCM编码AAC
    查看>>
    Windows下wave API 音频采集
    查看>>
    借船过河:一个据说能看穿你的人性和欲望的心理测试
    查看>>
    AndroidStudio 导入三方库使用
    查看>>
    Ubuntu解决gcc编译报错/usr/bin/ld: cannot find -lstdc++
    查看>>
    解决Ubuntu14.04 - 16.10版本 cheese摄像头灯亮却黑屏问题
    查看>>
    解决Ubuntu 64bit下使用交叉编译链提示error while loading shared libraries: libz.so.1
    查看>>
    MFC程序添加console窗口+printf打印输出信息
    查看>>
    VS生成DLL文件供第三方调用
    查看>>