常见问题

2019-03-30 14:35 更新

如何不登录直接访问

在 ShiroConfig 中设置filterChainDefinitionMap 配置url=anon

  1. /admins/**=anon # 表示该 uri 可以匿名访问
  2. /admins/**=auth # 表示该 uri 需要认证才能访问
  3. /admins/**=authcBasic # 表示该 uri 需要 httpBasic 认证
  4. /admins/**=perms[user:add:*] # 表示该 uri 需要认证用户拥有 user:add:* 权限才能访问
  5. /admins/**=port[8080] # 表示该 uri 需要使用 8080 端口
  6. /admins/**=roles[admin] # 表示该 uri 需要认证用户拥有 admin 角色才能访问
  7. /admins/**=ssl # 表示该 uri 需要使用 https 协议
  8. /admins/**=user # 表示该 uri 需要认证或通过记住我认证才能访问
  9. /logout=logout # 表示注销,可以当作固定配置
  10. 注意:
  11. anon,authcBasic,authc,user 是认证过滤器。
  12. perms,roles,ssl,rest,port 是授权过滤器。

如何使用多数据源

  1. 在 resources 目录下修改application-druid.yml
    1. ## 从库数据源
    2. slave:
    3. # 开启从库
    4. enabled: true
    5. url: 数据源
    6. username: 用户名
    7. password: 密码

  1. 在Service实现中添加DataSource注解
    1. @DataSource(value = DataSourceType.SLAVE)
    2. public List<User> selectUserList()
    3. {
    4. return mapper.selectUserList();
    5. }

日期插件精确到时分秒

datetimepicker日期控件可以设置format

  1. $('.input-group.date').datetimepicker({
  2. format: 'yyyy-mm-dd hh:ii:ss',
  3. autoclose: true,
  4. minView: 0,
  5. minuteStep:1
  6. });

laydate日期控件可以设置common.js 配置type=datetime

  1. layui.use('laydate', function() {
  2. var laydate = layui.laydate;
  3. var startDate = laydate.render({
  4. elem: '#startTime',
  5. max: $('#endTime').val(),
  6. theme: 'molv',
  7. trigger: 'click',
  8. type : 'datetime',
  9. done: function(value, date) {
  10. // 结束时间大于开始时间
  11. if (value !== '') {
  12. endDate.config.min.year = date.year;
  13. endDate.config.min.month = date.month - 1;
  14. endDate.config.min.date = date.date;
  15. } else {
  16. endDate.config.min.year = '';
  17. endDate.config.min.month = '';
  18. endDate.config.min.date = '';
  19. }
  20. }
  21. });
  22. var endDate = laydate.render({
  23. elem: '#endTime',
  24. min: $('#startTime').val(),
  25. theme: 'molv',
  26. trigger: 'click',
  27. type : 'datetime',
  28. done: function(value, date) {
  29. // 开始时间小于结束时间
  30. if (value !== '') {
  31. startDate.config.max.year = date.year;
  32. startDate.config.max.month = date.month - 1;
  33. startDate.config.max.date = date.date;
  34. } else {
  35. startDate.config.max.year = '';
  36. startDate.config.max.month = '';
  37. startDate.config.max.date = '';
  38. }
  39. }
  40. });
  41. });

代码生成不显示新建表

默认条件需要表注释,特殊情况可在GenMapper.xml去除table_comment条件

  1. <select id="selectTableByName" parameterType="String" resultMap="TableInfoResult">
  2. <include refid="selectGenVo"/>
  3. where table_comment <> '' and table_schema = (select database())
  4. </select>

提示您没有数据的权限

这种情况都属于权限标识配置不对在菜单管理配置好权限标识(菜单&按钮)

  1. 确认此用户是否已经配置角色
  2. 确认此角色是否已经配置菜单权限
  3. 确认此菜单权限标识是否和后台代码一致

如参数管理
后台配置@RequiresPermissions("system:config:view")对应参数管理权限标识为system:config:view

注:如需要角色权限,配置角色权限字符 使用@RequiresRoles("admin")

富文本编辑器文件上传

富文本控件采用的summernote,图片上传处理需要设置callbacks函数

  1. $('.summernote').summernote({
  2. height : '220px',
  3. lang : 'zh-CN',
  4. callbacks: {
  5. onImageUpload: function(files, editor, $editable) {
  6. var formData = new FormData();
  7. formData.append("file", files[0]);
  8. $.ajax({
  9. type: "POST",
  10. url: ctx + "common/upload",
  11. data: data,
  12. cache: false,
  13. contentType: false,
  14. processData: false,
  15. dataType: 'json',
  16. success: function(result) {
  17. if (result.code == web_status.SUCCESS) {
  18. $(obj).summernote('editor.insertImage', result.url, result.fileName);
  19. } else {
  20. $.modal.alertError(result.msg);
  21. }
  22. },
  23. error: function(error) {
  24. $.modal.alertWarning("图片上传失败。");
  25. }
  26. });
  27. }
  28. }
  29. });

如何创建新的菜单页签

建新新的页签有以下两种方式(js&html)

  1. // 方式1 js创建
  2. function dept() {
  3. var url = ctx + "system/dept";
  4. createMenuItem(url, "部门管理");
  5. }
  6. // 方式2 html创建
  7. <a class="menuItem" href="/system/dept">部门管理</a>

表格数据进行汇总统计

对于某些数据需要对金额,数量等进行汇总,可以配置showFootertrue表示尾部统计

  1. // options 选项中添加尾部统计
  2. showFooter: true,
  3. // columns 中添加
  4. {
  5. field : 'money',
  6. title : '金额',
  7. sortable: true,
  8. footerFormatter:function (value) {
  9. return "总金额:" + value;
  10. }
  11. },

如何去除数据监控广告

服务监控中使用的Driud,默认底部有阿里的广告。如果是一个商业项目这个是很不雅也是不允许的

  1. 找到本地maven库中的对应的druid-1.1.xx.jar文件,用压缩包软件打开
  2. 找到support/http/resource/js/common.js, 打开找到 buildFooter 方法
    1. this.buildFooter();
    2. buildFooter : function() {
    3. var html ='此处省略一些相关JS代码';
    4. $(document.body).append(html);
    5. },
  3. 删除此函数和及初始方法后覆盖文件
  4. 重启项目后,广告就会消失了

如何支持多类型数据库

对于某些特殊需要支持不同数据库,参考以下支持oracle mysql配置

  1. <!--oracle驱动-->
  2. <dependency>
  3. <groupId>com.oracle</groupId>
  4. <artifactId>ojdbc6</artifactId>
  5. <version>11.2.0.3</version>
  6. </dependency>
  1. ## 数据源配置
  2. spring:
  3. datasource:
  4. type: com.alibaba.druid.pool.DruidDataSource
  5. druid:
  6. # 主库数据源
  7. master:
  8. url: jdbc:mysql://127.0.0.1:3306/ry?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
  9. username: root
  10. password: password
  11. # 从库数据源
  12. slave:
  13. # 从数据源开关/默认关闭
  14. enabled: true
  15. url: jdbc:oracle:thin:@127.0.0.1:1521:oracle
  16. username: root
  17. password: password
以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号