1. 用户录入、编辑时选择组织架构、角色时对话框被挡住:
解决方法: 把下面代码替换掉即可,一共3处需修改
function openDepartmentSelect() { $.dialog.setting.zIndex = getzIndex(); var orgIds = $("#orgIds").val(); $.dialog({content: 'url:departController.do?departSelect&orgIds='+orgIds, zIndex: 2100, title: '组织机构列表', lock: true, width: '400px', height: '350px', opacity: 0.4, button: [ {name: '<t:mutiLang langKey="common.confirm"/>', callback: callbackDepartmentSelect, focus: true}, {name: '<t:mutiLang langKey="common.cancel"/>', callback: function (){}} ]}).getzIndex(); }
改为下面的:
function openDepartmentSelect() { $.dialog.setting.zIndex = getzIndex(true); var orgIds = $("#orgIds").val(); $.dialog({content: 'url:departController.do?departSelect&orgIds='+orgIds, zIndex: getzIndex(), title: '组织机构列表', lock: true, width: '400px', height: '350px', opacity: 0.4, button: [ {name: '<t:mutiLang langKey="common.confirm"/>', callback: callbackDepartmentSelect, focus: true}, {name: '<t:mutiLang langKey="common.cancel"/>', callback: function (){}} ]}); }
2. 用户
3. 图片上传出错,提示"啥都没干-没传参数吧!":路径不对以及上传后按日期分类存放图片导致tomcat重启后无法读取图片
解决方法:
1) 修改src/main/resources/sysConfig .properties 文件中的webUploadpath属性设置文件上传目录,我设置为空以便拼接在根目录上
# 文件上传目录 webUploadpath=
2) 修改SystemController.java文件的filedeal()方法:
src/main/java/org/jeecgframework/web/system/controller/core/SystemController.java
nowday是创建日期目录,直接改成固定目录如"images",如果更改变量名称则引用变量处一并修改(两处引用)
String nowday=new SimpleDateFormat("yyyyMMdd").format(new Date());
File file = new File(ctxPath+File.separator+nowday);
String dbpath=ctxPath+File.separator+ nowday +File.separator+fileName;
上面三行代码改为下面的:
String images="images";
File file = new File(ctxPath+File.separator+images); String dbpath=ctxPath+File.separator+ images +File.separator+fileName;
注:ctxPath有两种方法,第一种读取tomcat的项目路径,如: /usr/local/apache-tomcat-7.0.67/webapps/ROOT,因为每次重启tomcat时ROOT路径下的所有文件都会清掉重新生成,所以用这种方式的话重启tomcat后之前保存的图片就丢失了,第二种方式即现在使用的读取项目配置的文件上传目录,使用绝对路径,因此尽量放在根目录
// String ctxPath = request.getSession().getServletContext().getRealPath(""); String ctxPath=ResourceUtil.getConfigByName("webUploadpath");//demo中设置为D://upFiles,实际项目应因事制宜
4. datagrid列表无法读取上述图片,但编辑页面的可以
原因:对于同一个路径的图片,编辑页面是调用systemController/showOrDownByurl.do的方法并把路径作为参数传递进去进行显示,而datagrid列表是直接以localhost:端口/图片路径 作为url进行显示,因为上面我用的是绝对路径到根目录,因此这个url出错
解决方法:把datagrid列表的路径也设置成跟编辑页面的一样,修改DataGridTag.java 的getField(StringBuffer sb,int frozen)方法(1847和1851共两行):
org/jeecgframework/tag/core/easyui/DataGridTag.java
把
src=\"'+value+'\"
改为
src=\"systemController/showOrDownByurl.do?dbPath='+value+'\"
修改后代码片段:
// 显示图片 if (column.isImage()) { if (column.getImageSize() != null) {// 自定义显示图片 String[] tld = column.getImageSize().split(","); sb.append(",formatter:function(value,rec,index){"); sb.append(" return '<img width=\"" + tld[0] + "\" height=\"" + tld[1] + "\" border=\"0\" src=\"systemController/showOrDownByurl.do?dbPath='+value+'\"/>';}"); tld = null; }else{ sb.append(",formatter:function(value,rec,index){"); sb.append(" return '<img border=\"0\" src=\"systemController/showOrDownByurl.do?dbPath='+value+'\"/>';}"); } } else if(column.getDownloadName() != null) {
5. 编辑图片后会自动在图片后面增加一个英文逗号,导致路径不对显示不了图片
解决方法:在编辑时调用的doUpdate()方法中去掉头尾的逗号,增加下面绿色字体显示的8行代码,需要注意的是,编辑后内容虽然变了,但内存没有更新,因此断点调试调试不出来
@RequestMapping(params = "doUpdate") @ResponseBody public AjaxJson doUpdate(MeetingRoomEntity meetingRoom, HttpServletRequest request) { String message = null; AjaxJson j = new AjaxJson(); message = "会议室信息更新成功"; MeetingRoomEntity meetingRoomEntity = meetingRoomService.get(MeetingRoomEntity.class, meetingRoom.getId()); String imagePath = meetingRoomEntity.getImage(); if (imagePath.startsWith(",")) { imagePath.substring(1, imagePath.length()); } if (imagePath.endsWith(",")) { imagePath.substring(1); } meetingRoomEntity.setImage(imagePath); try { MyBeanUtils.copyBeanNotNull2Bean(meetingRoom, meetingRoomEntity); meetingRoomService.saveOrUpdate(meetingRoomEntity); systemService.addLog(message, Globals.Log_Type_UPDATE, Globals.Log_Leavel_INFO); } catch (Exception e) { e.printStackTrace(); message = "会议室信息更新失败"; throw new BusinessException(e.getMessage()); } j.setMsg(message); return j; }