若依框架简介

一、用户管理模块代码注意点简介

在这里插入图片描述

1.1 针对界面的搜索功能

1.1.1 前端部分的代码

举例用户管理界面的带搜索条件的搜索
在这里插入图片描述
页面的搜索方法中仅两个代码块,并未看到以往项目当中的拼接搜索搜索条件的部分的代码
在这里插入图片描述
具体的搜索条件部分的代码拼接在ry-ui.js中
在这里插入图片描述
根据这里的代码也就要求我们在页面元素部分的代码中需要去写name喝id的属性,并且这两个属性的值是相同的。

1.1.2 后端部分的代码

1.1.2.1 controller层

在这里插入图片描述
从上图中我们可以看到,这里controller中接收参数的代码中可以看到,我们这里接收的是一个User对象。
在这里插入图片描述

/**
 * Entity基类
 * 
 * @author lwj
 */
public class BaseEntity implements Serializable
{
    private static final long serialVersionUID = 1L;

    /** 搜索值 */
    @Transient
    private String searchValue;

    /** 请求参数 */
    @Transient
    private Map<String, Object> params;

    public String getSearchValue()
    {
        return searchValue;
    }

    public void setSearchValue(String searchValue)
    {
        this.searchValue = searchValue;
    }

    public Map<String, Object> getParams()
    {
        if (params == null)
        {
            params = Maps.newHashMap();
        }
        return params;
    }

    public void setParams(Map<String, Object> params)
    {
        this.params = params;
    }
}

在BaseEntity中我们可以看到我们这里定义了搜索值和请求参数

1.1.2.2 service层

我们在下面的代码中可以看到,这里使用了数据权限的注解,但是这个注解是具有局限的

@Override
@DataScope(tableAlias = "u")
public List<User> selectUserList(User user) {
    //  生成数据权限过滤条件
    return userMapper.selectUserList(user);
}

查看注解部分的代码,我们发现是规定了范围的,主要是过滤了dept_id
在这里插入图片描述

1.1.2.3 dao xml层

在这里插入图片描述
上图中可以看到,我们的这部分其中一个表的一个别名为“u”,这个对应service层代码中的这个方法,见下图
在这里插入图片描述
切面会将数据权限部分的sql代码拼装到params字段中,该字段位于User实体中的BaseEntity中定义。

1.2 关于用户管理界面上的按钮部分的注意点

该项目中目前用户对按钮的权限部分是通过后台调用来判断的,有权限的会显示,没有权限的不会显示。

1.2.1 前端部分

在这里插入图片描述
按钮的控制使用到了thymeleaf模板中的@+Spring容器中注册的Bean的名字+方法名的方式;目前该方法中传入的参数permission:user:add为该按钮在数据库表结构中配置的
在这里插入图片描述

1.2.2 后端部分

在这里插入图片描述

1.3 关于用户新增修改部分

1.3.1 新增部分

1.3.1.1 新增前端部分

前端加入了validate的前端校验

在这里插入图片描述

1.3.1.2 后端部分

首先在controller层的方法上我们可以看到很多注解
@Log注解:使用这个注解将通过注解的方式为项目添加操作日志。
@Transactional注解:这个注解是事务注解,在编写业务逻辑中涉及到多个表的更新的时候,需要使用事务去回滚可能出现的错误。
@Valid注解:该注解是hibernate的对于对象参数的校验。
在这里插入图片描述

1.3.2 用户修改部分

此部分后端代码基本一致。

版权声明:本文为weixin_38657051原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_38657051/article/details/90018814

智能推荐

[笔记]飞浆PaddlePaddle-百度架构师手把手带你零基础实践深度学习-21日学习打卡(Day 3)

[笔记]飞浆PaddlePaddle-百度架构师手把手带你零基础实践深度学习-21日学习打卡(Day 3) (Credit: https://gitee.com/paddlepaddle/Paddle/raw/develop/doc/imgs/logo.png) MNIST数据集 MNIST数据集可以认为是学习机器学习的“hello world”。最早出现在1998年LeC...

哈希数据结构和代码实现

主要结构体: 实现插入、删除、查找、扩容、冲突解决等接口,用于理解哈希这种数据结构 完整代码参见github: https://github.com/jinxiang1224/cpp/tree/master/DataStruct_Algorithm/hash...

解决Ubuntu中解压zip文件(提取到此处)中文乱码问题

在Ubuntu系统下,解压zip文件时,使用右键--提取到此处,得到的文件内部文件名中文出现乱码。 导致此问题出现的原因一般为未下载相应的字体。 解决方案: 在终端中使用unar命令。 需要注意的是系统需要包含unar命令,如果没有,采用如下的方式解决: 实例效果展示: 直接提取到此处: 使用 unar filename.zip得到的文件...

centos7安装mysql8.0.20单机版详细教程

mysql8.0之后与5.7存在着很大的差异,这些差异不仅仅表现在功能和性能上,还表现在基础操作和设置上。这给一些熟悉mysql5.7的小伙伴带来了很多困扰,下面我们就来详细介绍下8.0的安装和配置过程。 mysql在linux上的多种安装方式: 1.yum安装 由于centos默认的yum源中没有mysql,所以我们要使用yum安装mysql就必须自己指定mysql的yum源。在官网下载mysq...

Python自学记录——调用函数和定义函数

对于函数,我的理解是 抽象的方法。你不需要它是内部结构是什么样子的,只要遵从它给你的规则来使用,就能得到想要的效果。 调用函数 在 Python 中,有很多内置的函数供我们调用,常用的函数如下: help(obj) 帮助,解释传入的obj type(obj) 查看传入obj的类型 callable(obj) 查看obj是否可以像函数被调用 isinstance(obj,cls) 查看obj的数据类...

猜你喜欢

透视遮罩Shader

Unity的透视遮罩Shader 介绍 shader 效果 资源下载 介绍 一个透视遮罩的Shader,及其材质球,会按照模型的UV方向产生透视效果。 shader 效果 里面有个UV从里面向外的球形模型,添加入材质球之后,在球内部向外看时,则会透视球外部的所有3D物体,直接看到天空盒。 一般状态下的场景: 透视遮罩下的场景: 资源下载 资源链接:https://download.csdn.net...

wingIDE设置python虚拟环境并运行

project=>project properties 用代码验证当前python环境: 按F5运行得到 /home/appleyuchi/.virtualenvs/python2.7 hello world /home/appleyuchi/.virtualenvs/python2.7/bin/python2.7 ########################33 说明所使用的pytho...

markdown基本语法(学习python之前先学习使用markdown)

markdown基本语法 一、说点啥 Markdown是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,让文本内容具有各式。 Markdown作为一种轻量标记语言,能在非常短的时间内掌握。而且不仅写博客,还可以写文档,写随笔等。markdown文档以.md结尾、可以导出html\pdf等各种各样的格式,它是一种语法(一种简化版的html)。 二、markdown 基本语法 (小方框为...

算法竞赛入门与进阶 (一)枚举

  枚举 1.关键点:不重复不遗漏 2.优化:把多余的操作去掉 例一: 在一个N*N(N<=100)矩阵中求一个最大的正方形使得该正方形的四个顶点都是有字符“#”构成。  #*#*** ****** #*#*#* ****** #***** ***#** hint: 1.两个点确定一个正方形,然后判断其余两个点是否为“#&rd...

算法导论_15.5 最优二叉查找树

一、问题 将英文翻译成法语,使用平衡二叉树建立英语-法语单词的键值对,便于搜索; 文章中单词出现次数有频率,有些单词出现频繁, 有些单词出现概率很小;应当将频繁出现的单词放在距离根较近的地方; 此外,注意到有部分英语单词没有对应的法语翻译 访问一个结点的代价是:结点的深度+1; 我们已知英语文章中各类单词出现的频率,试图构造一棵最优二叉查找树,使得翻译文章的速度最快(访问的结点数最小); 翻译整篇...