文档章节

jeecg框架日常开发问题解决方法

MATT0614
 MATT0614
发布于 2017/01/10 15:37
字数 1419
阅读 2266
收藏 8
  1. 启动报错
    The argument does not represent an annotation type: ContextConfiguration

    org.jeecgframework.core.junit.AbstractUnitTest 类的依赖类 需要导入本地junit4 测试包
  2. 图片保存相对路径
    把表单的图片字段设置为text类型
  3. 生成代码后,多选框 报错问题。
    修改DictSelectTag类,在272行加入
    if(this.defaultVal==null){
       this.defaultVal="";
    }
    4.表格id转名称 属性
    dictionary="GCCJ_TASK_ASSIGNMENT,ID,TASK_NAME"
     

     

  4. jeecg框架添加三级菜单支持
    org.jeecgframework.core.util.ListtoMenu 类 修改 如下方法
    private static String getHplusSubMenu(TSFunction parent, int level, Map<Integer, List<TSFunction>> map) {
    		StringBuffer menuString = new StringBuffer();
    		List<TSFunction> list = map.get(level);
    		for (TSFunction function : list) {
    			if (function.getTSFunction().getId().equals(parent.getId())){
    				if (!function.hasSubFunction(map)) {
    					menuString.append(getLeafOfHplusTree(function));
    				} else {
    					//增加多级菜单显示
    					menuString.append("<li>");
    					menuString.append("<a href=\"#\" >");
    					menuString.append(getMutiLang(function.getFunctionName()));
    					menuString.append("<span class=\"fa arrow\"></span>");
    					menuString.append("</a><ul class=\"nav nav-third-level\" >");
    					menuString.append(getHplusSubMenu(function,level+1,map));
    					menuString.append("</ul></li>");
    				}
    			}
    		}
    		return menuString.toString();
    	}
    只支持H+平面风格,其他的风格你可以参考上面的代码进行修改

     

  5. 在jeecg中实现多表关联查询 
    http://www.jeecg.org/forum.php?mod=viewthread&tid=3063&fromuid=8256
  6. 怎么在页面当中打开一个新的tab页面 
    curdtool*.js通用js里面有方法 addoneTab
  7. JEECG通用文件上传-弹出式(觉得文件上传不好用的来看)
    http://www.jeecg.org/forum.php?mod=viewthread&tid=935&extra=page%3D38 
    commonUpload函数在 代码生成的对应页面的 .js 文件中
  8. 按钮中获取选中记录的字段值
    function resetPassword() {
        var row = $('#tSBaseUserList').datagrid('getSelections')[0];
        if (row == undefined) {
            alertTip('请选择需要重置的记录', '提示');
            return;
        }
        var userName, password;
        userName = row.username;
        password = '123456';
        var url = 'userController.do?userUpdate4App&userName=' + userName + '&password=123456';
        $.dialog.confirm('是否重置密码为 123456 ?', function () {
            $.ajax({
                async: false,
                cache: false,
                type: 'POST',
                dataType: 'json',
                url: url,// 请求的action路径
                error: function () {// 请求失败处理函数
                },
                success: function (data) {
                    if (data.success) {
                        $.messager.show({
                            title: '提示信息',
                            msg: '密码重置成功,默认密码为123456',
                            timeout: 1000 * 5
                        });
                    } else {
                        $.messager.show({
                            title: '提示信息',
                            msg: data.msg,
                            timeout: 1000 * 3
                        });
                    }
                }
            });
        }, function () {
        });
    }


  9. maven地址
     找到 maven老家 conf/settings.xml,
      在<mirrors>标签内增加阿里云maven镜像 最终结果见下面:

      <mirrors>
           <mirror>
                            <id>nexus-aliyun</id>
                            <mirrorOf>*,!jeecg,!jeecg-snapshots</mirrorOf>
                            <name>Nexus aliyun</name>
                            <url>http://maven.aliyun.com/nexus/content/groups/public</url>
            </mirror> 
        </mirrors>

      然后执行maven命令,享受一下mvn时飞的感觉;

      备注: 配置了镜像,默认所有的依赖都只会去镜像下载,所以你这边如果也有自己的私服,可以参考jeecg方式排除一下,不然不会从自己的私服去下载私有的依赖。

    来源: http://www.jeecg.org/forum.php?mod=viewthread&tid=3949&extra=page%3D1

  10. 弹窗默认最大化
    <t:dgToolBar title="任务录入" icon="icon-add" url="gccjTaskAssignmentController.do?goAdd" funname="add" width="100%" height="100%"></t:dgToolBar>
    解决弹窗被菜单遮盖问题:
    1.修改 plug-in/tools/curdtools_zh-cn.js 里getzIndex()方法
    setCookie("ZINDEXNUMBER",2980);
    zindexNumber = 2980;
    2.修改 org.jeecgframework.web.system.controller.core.LoginController
    Cookie zIndexCookie = new Cookie("ZINDEXNUMBER", "2990");

     

  11. 弹出窗口增加按钮
    重写plug-in/tools/curdtools_zh-cn.js文件中createdetailwindow方法(重命名),复制重写的方法到对应的 *-list文件中,修改录入、修改、查看或者删除方法的调用方法名为重写的方法
    弹窗组件API 参考网址 http://www.lhgdialog.com/
  12. 获取当前登录用户信息
    TSUser user = ResourceUtil.getSessionUserName();

     

  13. 获取当前日期
    String date  = DateUtils.date2Str(new Date(), DateUtils.date_sdf);
  14. rest风格请求地址调用方法
    例如:
    查询list :http://localhost:8080/系统名称/rest/tZzxtDictionaryController/
    查询1条数据:http://localhost:8080/系统名称/rest/tZzxtDictionaryController/{id}
    其他方法去对应的controller里面找
  15. 修改系统title
    系统管理->国际化语言 菜单
    语言key: jeect.platform 
  16. 修改弹出框为layer弹出框
    BaseTag.java 加入js库
    if (oConvertUtils.isIn("tools", types)) {
                。。。。。。。。。。省略
                sb.append("<script type=\"text/javascript\" src=\"plug-in/layer/layer.js\" ></script>");
    
             }
    修改createwindow方法,加入此代码

    加入该方法
    //layer新增窗口
    function addLayer(title, addurl,width,height){
       layer.open({
          type: 2,
          maxmin:true,
          title: title,
          shadeClose: true,
          shade: 0.8,
          fixed:false,
          resize:true,
          scrollbar:false,
          parent:windowapi,
          area: [width,height],
          content: addurl, //iframeurl
          btn:['确定','关闭'],
          yes:function(index, layero){
             // iframe = this.iframe.contentWindow;
             // iframe = layero.find('iframe')[0];
             iframe = window[layero.find('iframe')[0]['name']];
             console.log(iframe.document);
             saveObj();
             // $('#btn_sub', iframeWin.document).click();
             // console.log(form);
             // $('#btn_sub',document).click();
             layer.close(index);
             tip('操作成功');
             reloadTable();
          }
    
       });
    }
    效果图:

    上面有BUG,就是有的框内内容,没有滚动条,暂时不知道怎么解决,刷新体验也有点差,有知道的大神,请赐教!
     
  17. 弹出框新增按钮,并调用窗口内容的方法

    页面增加按钮,例如打印窗口内的html片段
    调用方法:

     
  18. IDEA下启动tomcat后,疯狂输出consider increasing the maximum size of the cache信息
    解决办法:
    tomcat context.xml文件加入:<Resources cachingAllowed="true" cacheMaxSize="100000" />
  19. 给列表单元格加背景色
    <t:dgCol title="任务类型"  field="type" align="center" extendParams="'styler':fmtype;" query="true" queryMode="single"  width="100"></t:dgCol>
    extendParams属性添加js方法,然后再调用方法
    function fmtype(val,row,index){
        var s1 = 'background-color: #f89406;;border-radius: 5px;color:#fff;';
        var s2 = 'background-color: #3a87ad;border-radius: 5px;color:#fff';
        if (val =='W') {
            return s1
        }
        if (val =='J') {
            return s2
        }
    }
  20. datagrid列表实现多表关联数据显示
    修改  xxxx-list.jsp的actionUrl默认请求方法datagrid,为
    actionUrl="tZzxtChunduController.do?dataGridByJdbc"
    <t:datagrid name="tZzxtChunduList" checkbox="false" fitColumns="true" title="玉米纯度田间小区种植鉴定原始记载表" actionUrl="tZzxtChunduController.do?datagrid" idField="id" fit="true" queryMode="group">
    调用自定义查询方法
    @RequestMapping(params = "dataGridByJdbc")
    public void dataGridByJdbc(HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid) {
       String query = "";
       String sampleNumber = request.getParameter("sampleNumber");
       String sql = "select * from v_zzxt_chundutongji v where 1=1  and v.c1_sampleNumber is not null and v.c2_sampleNumber is not null  ";
       int page = Integer.parseInt(request.getParameter("page"));
       int rows = Integer.parseInt(request.getParameter("rows"));
       if (StringUtil.isNotEmpty(sampleNumber)) {
          query = query + " and v.sample_number = '" + sampleNumber + "'";
       }
       sql = sql +query;
       List<Map<String, Object>> mapList = tZzxtChunduService.findForJdbc(sql, page, rows);
    
       Long count = systemService.getCountForJdbc("SELECT COUNT(1) FROM v_zzxt_chundutongji v WHERE 1=1  and v.c1_sampleNumber is not null and v.c2_sampleNumber is not null "+query);
       dataGrid.setTotal(count.intValue());
       dataGrid.setResults(mapList);
    
       TagUtil.datagrid(response, dataGrid);
    }
    最后xxx.list.jsp页面field字段重新绑定sql字段就行了。查询条件可以随便拼接。
    这样也可以避免自动生成代码,只能根据一个字段排序问题。
  21.  

 

© 著作权归作者所有

MATT0614
粉丝 7
博文 43
码字总数 11472
作品 0
银川
程序员
私信 提问
加载中

评论(4)

MATT0614
MATT0614

引用来自“小布的成长之路”的评论

Uncaught TypeError: Cannot read property 'api' of null
at curdtools_zh-cn.js:11

这个怎么解决
随便改一行代码,重新保存
小布的成长之路
小布的成长之路
Uncaught TypeError: Cannot read property 'api' of null
at curdtools_zh-cn.js:11

这个怎么解决
MATT0614
MATT0614

引用来自“依靠”的评论

1、启动,导入junit包是啥意思?怎么导入。我看pom.xml中有啊
AbstractUnitTest 这个类的头部,引入的依赖都删除掉,重新引入就行了。pom里面有,但是它自动导入的会报错,估计和开发环境有关吧。所以删除重新导入,就好了
0
0王小二0
1、启动,导入junit包是啥意思?怎么导入。我看pom.xml中有啊
第20期JEECG架构培训班开始报名啦,每期十个名额,报名从速!

第20期开始报名啦,只招10名,报名从速啦!! 《开源社区JAVA架构师徒培训班》 Java程序员如何打破工作2,3年的瓶颈问题, 让技术更上一层楼?? 很多人做java开发2,3年后,都会感觉自己遇到瓶颈...

Jeecg
2015/10/13
68
0
jeewx 部署 启动未成功的一些可能原因

jeecg数据库脚本问题 注意:jeecg3.5.2之前版本,不需要数据库脚本,程序会自动初始化数据库。从3.5.2+开始,需要手工执行SQL脚本,初始化数据库。 2. Eclipse内存溢出 2014-6-27 15:29:21 o...

王小盼
2016/11/09
356
4
JEECG3.6.4云插件开发版本 ,打造企业级云应用生态圈

JEECG 是一款基于代码生成器的J2EE快速开发平台,开源界“小普元”,超越传统商业企业级开发平台。JEECG引领新的开发模式(Online Coding模式(自定义表单)->代码生成器模式->手工MERGE智能开发...

Jeecg
2016/07/01
41
0
Jeewx-Enterprise_1.1版本发布,开源微信企业号开发平台

JEEWX企业号简介 JEEWX微信企业号开发平台是一款开源、免费、高效、敏捷的微信企业号开发平台,采用Java语言基于Jeecg快速开发框架实现,实现了微信企业号管理平台的基础功能,便于用户二次开...

Jeecg
2016/07/21
33
0
Jeecg-Boot 2.0 版本发布,基于Springboot+Vue 前后端分离快速开发平台

目录 Jeecg-Boot项目简介 源码下载 升级日志 Issues解决 v1.1升级到v2.0不兼容地方 系统截图 Jeecg-Boot项目简介 Jeecg-boot 是一款基于代码生成器的智能开发平台!采用前后端分离技术:Spri...

Jeecg
05/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

基础工具类

package com.atguigu.util;import java.sql.Connection;import java.sql.SQLException;import java.util.Properties;import javax.sql.DataSource;import com.alibaba.druid......

architect刘源源
今天
43
0
P30 Pro劲敌!DxO官宣新机:排行榜又要变

5月26日晚间,DxOMark官方推特预告,将在5月27日公布一款新机型的DxOMark评分,猜猜是哪款? 网友猜想的机型有:红米K20、谷歌Pixel 3a、索尼Xperia 1、诺基亚9 PureView等。 DxOMark即将公布...

linux-tao
昨天
15
0
Ubuntu18.04.2窗口过小不能自适应(二次转载)

解决Ubuntu在虚拟机窗口不能自适应 2018年09月06日 16:20:08 起不了名儿 阅读数 855 此博文转载:https://blog.csdn.net/nuddlle/article/details/77994080(原地址) 试了很多办法这个好用 ...

tahiti_aa
昨天
2
0
死磕 java同步系列之CountDownLatch源码解析

问题 (1)CountDownLatch是什么? (2)CountDownLatch具有哪些特性? (3)CountDownLatch通常运用在什么场景中? (4)CountDownLatch的初始次数是否可以调整? 简介 CountDownLatch,可以...

彤哥读源码
昨天
6
0
Nginx提供下载apk服务

有时候我们可能需要提供文件或者其他apk下载链接,通过 nginx 配置可以很简单地实现。 server {    listen 80;    server_name download.xxx.com;    root app;    locati...

Jack088
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部