当前位置: 首页 > news >正文

Ruoyi5.x RuoYi-Vue-Plus新建Translation翻译类

若依框架(RuoYi)中的Translation翻译类主要作用在于实现字段值的转换或翻译功能,以提高数据展示的准确性和友好性。以下是其具体作用的一些关键点:

字段值转换:若依框架在处理数据时,有时需要将某些字段的存储值(如ID)转换为更具可读性的展示值(如名称、标签等)。Translation翻译类正是为此目的而设计的,它允许定义字段值的转换规则,并在需要时自动执行转换。
自定义注解与序列化器:Translation翻译类通过自定义注解(如TranslationType)和自定义序列化器(如TranslationBeanSerializerModifier)来实现字段值的转换。开发者可以为不同的字段或数据类型定义不同的转换规则,并将这些规则应用于整个系统或特定模块。
内置翻译功能:系统目前内置了几种常用的翻译功能,包括用户ID转账号、部门ID转名称、字典类型转标签等。这些内置功能可以大大简化开发过程,减少重复代码。
分模块设计:若依框架采用分模块设计,使得Translation翻译类可以轻松地集成到系统的各个模块中。无论是前端展示还是后端处理,都可以根据需要调用相应的翻译功能。
易于维护与扩展:由于Translation翻译类采用自定义注解和序列化器的方式实现,因此其代码结构清晰、易于理解和维护。同时,开发者可以根据项目需求轻松地扩展新的翻译功能或修改现有功能。

以系统分类为例进行新的翻译功能添加:

  1. 添加翻译常量:
    在类org.dromara.common.translation.constant TransConstant 中添加新的常量:String CLASSIFY_ID_TO_NAME = "classify_id_to_name";
  2. 新建service接口:
    org.dromara.common.core.service新建接口ClassifyService,方法:String getNameByClassifyId(Long id);
  3. 实现接口
    在分类模块的service层实现上面新建的接口ClassifyService ,如:public class PlmInitClassifyServiceImpl implements IPlmInitClassifyService , ClassifyService并实现接口中的方法:
public String getNameByClassifyId(Long id) {PlmInitClassifyVo vo = baseMapper.selectVoById(id);if (vo != null) {return vo.getClassifyName();}return "";
}
  1. 在包org.dromara.common.translation.core.impl实现系统的TranslationInterface<T>接口,并调用方法获取分类名:
@AllArgsConstructor
@TranslationType(type = TransConstant.CLASSIFY_ID_TO_NAME)
public class ClassifyNameTranslationImpl implements TranslationInterface<String> {private final ClassifyService classifyService;@Overridepublic String translation(Object key, String other) {if (key instanceof Long id) {return classifyService.getNameByClassifyId(id);}return "";}
}
  1. org.springframework.boot.autoconfigure.AutoConfiguration.imports文件中添加第4步新建的类的包名和类名
org.dromara.common.translation.core.impl.ClassifyNameTranslationImpl
  1. 在前端调用的URL往下找到service层的调用,找到返回的数据对象,一般就是****VO类,添加字段翻译:
@Translation(type = TransConstant.CLASSIFY_ID_TO_NAME, mapper = "classifyId")
private String classifyName;
  1. 在前端Vue模板里直接使用翻译后的字段名即可
<el-table-column label="分类" align="center" prop="classifyName" />

在这里插入图片描述

相关文章:

Ruoyi5.x RuoYi-Vue-Plus新建Translation翻译类

若依框架&#xff08;RuoYi&#xff09;中的Translation翻译类主要作用在于实现字段值的转换或翻译功能&#xff0c;以提高数据展示的准确性和友好性。以下是其具体作用的一些关键点&#xff1a; 字段值转换&#xff1a;若依框架在处理数据时&#xff0c;有时需要将某些字段的…...

类加载的奥秘

一、类的加载过程将类的字节码文件加载到Java虚拟机中进行执行。 1.通过一个类的全限定名来获取定义此类的二进制流字节码文件(如zip 包、网络、运算生成、JSP 生成、数据库读取等)。 2.将这个字节流所代表的静态存储结构&#xff08;如常量池、字段、方法等&#xff09;转化为…...

Spring知识点总结

1. 简介一下Spring框架。 答&#xff1a;Spring框架是一个开源的容器性质的轻量级框架。主要有三大特点&#xff1a;容器、IOC&#xff08;控制反转&#xff09;、AOP&#xff08;面向切面编程&#xff09;。 2. Spring框架有哪些优点&#xff1f;谈谈你的看法。 答&#xff…...

STM32Cube系列教程11:STM32 AES加解密模块性能测试

文章目录 本次测试环境本次测试所使用的系统时钟为48MHz本次测试主要测试对大量数据进行加解密所需的时间&#xff0c;本次为不严谨测试&#xff0c;忽略了程序调用耗时&#xff0c;结果仅供参考。 AES算法与数据加解密加密与解密对称加解密AES算法AES-ECBAES-CBC 填充算法PKCS…...

Vue2基础:.sync修饰符的使用,认识,作用,本质案例演示,实现父子之间的通信。

.sync的作用&#xff1a; 可以实现子组件与父组件数据的双向绑定&#xff0c;简化代码。 与v-model的不同点,prop属性名可以自定义&#xff0c;不要一定要用value. .sync的本质&#xff1a; 就是&#xff1a;属性名和update&#xff1a;属性名合写。 下面我们进行代码演示…...

【数据结构与算法】使用单链表实现队列:原理、步骤与应用

&#x1f493; 博客主页&#xff1a;倔强的石头的CSDN主页 &#x1f4dd;Gitee主页&#xff1a;倔强的石头的gitee主页 ⏩ 文章专栏&#xff1a;《数据结构与算法》 期待您的关注 ​ 目录 一、引言 &#x1f384;队列的概念 &#x1f384;为什么要用单链表实现队列 二、单…...

DHCP服务

文章目录 一、DHCP介绍二、DHCP应用场景三、DHCP工作原理3.1&#xff09;工作方式3.2&#xff09;工作原理解析3.3)计算机获得IP的时间点3.4&#xff09;租约更新阶段 四、DHCP服务器部署4.1&#xff09;DHCP安装4.2&#xff09;DHCP配置文件详解4.3&#xff09;DHCP启动 五、D…...

C++笔试-剑指offer

剑指offer 文章目录 剑指offer数组[数组中重复的数据 ](https://leetcode.cn/problems/find-all-duplicates-in-an-array/description/)将元素交换到对应的位置 二维数组中的查找二叉搜索树 旋转数组的最小数字二分查找 数组中出现次数超过一半的数字相互抵消 连续子数组的最大…...

Mac安装jadx并配置环境

jadx官网&#xff1a;GitHub - skylot/jadx: Dex to Java decompiler 第一种&#xff1a; 安装jadx命令&#xff1a; brew install jadx 启动jadx-gui命令&#xff1a; jadx-gui 可能遇到的问题&#xff1a; Downloading https://formulae.brew.sh/api/formula.jws.json** h…...

前端学习----css基础语法

CSS概述 CAscading Style Sheets(级联样式表) CSS是一种样式语言,用于对HTML文档控制外观,自定义布局等,例如字体,颜色,边距等 可将页面的内容与表现形式分离,页面内容存放在HTML文档中,而用于定义表现形式的CSS在一个.css文件中或HTML文档的某一部分 HTML与CSS的关系 HTM…...

超详解——python条件和循环——小白篇

目录 1. 缩进和悬挂else 2. 条件表达式 3. 和循环搭配的else 4. 可调用对象 总结&#xff1a; 1. 缩进和悬挂else 在Python中&#xff0c;代码块是通过缩进来表示的。条件判断和循环结构的代码块需要正确缩进。悬挂else指的是else子句和相应的if或循环在同一级别的缩进。 …...

DNS协议 | NAT技术 | 代理服务器

目录 一、DNS协议 1、DNS背景 2、DNS协议 域名 域名解析 二、NAT技术 1、NAT技术 2、NAPT技术 3、NAT技术的缺陷 三、代理服务器 1、正向代理服务器 2、反向代理服务器 一、DNS协议 域名系统&#xff08;Domain Name System&#xff0c;缩写&#xff1a;DNS&#…...

深入ES6:解锁 JavaScript 类与继承的高级玩法

个人主页&#xff1a;学习前端的小z 个人专栏&#xff1a;JavaScript 精粹 本专栏旨在分享记录每日学习的前端知识和学习笔记的归纳总结&#xff0c;欢迎大家在评论区交流讨论&#xff01; ES5、ES6介绍 文章目录 &#x1f4af;Class&#x1f35f;1 类的由来&#x1f35f;2 co…...

领域驱动设计:异常处理

一、异常的处理 异常处理是领域模型要考虑的一部分&#xff0c;原因在于模型的责任不可能无限大。在遇到自己处理能力之外的情况时&#xff0c;要采用异常机制报告错误&#xff0c;并将处理权转交。异常就是这样一种机制&#xff0c;某种程度上&#xff0c;它可以保证领域模型…...

网络网络层之(6)ICMPv6协议

网络网络层之(6)ICMPv6协议 Author: Once Day Date: 2024年6月2日 一位热衷于Linux学习和开发的菜鸟&#xff0c;试图谱写一场冒险之旅&#xff0c;也许终点只是一场白日梦… 漫漫长路&#xff0c;有人对你微笑过嘛… 全系列文章可参考专栏: 通信网络技术_Once-Day的博客-CS…...

《大道平渊》· 拾壹 —— 商业一定是个故事:讲好故事,员工奋发,顾客买单。

《大道平渊》 拾壹 "大家都在喝&#xff0c;你喝不喝&#xff1f;" 商业一定是个故事&#xff0c;人民群众需要故事。 比如可口可乐的各种故事。 可口可乐公司也只是被营销大师们&#xff0c; 作为一种故事载体&#xff0c;发挥他们的本领。 营销大师们开发故事…...

JavaScript 如何访问本地文件夹

在浏览器环境中的JavaScript&#xff08;通常指的是前端JavaScript&#xff09;由于安全限制&#xff0c;无法直接访问用户的本地文件或文件夹。这是为了防止恶意脚本访问并窃取用户的敏感数据。 但是&#xff0c;有几种方法可以间接地让用户选择并访问本地文件&#xff1a; 使…...

ArrayList顺序表简单实现

一、创建MyArrayList框架 1.1 MyArrayList 类中实现 arr 数组 import java.util.Arrays;public class MyArrayList {private int[] arr;private int usesize;private static final int P 10;public MyArrayList() {arr new int[P];} 在 MyArrayList 类内创建 arr 数组&…...

144、二叉树的前序递归遍历

题解&#xff1a; 递归书写三要素&#xff1a; 1&#xff09;确定递归函数的参数和返回值。要确定每次递归所要用到的参数以及需要返回的值 2&#xff09;确定终止条件。操作系统也是用栈的方式实现递归&#xff0c;那么如果不写终止条件或者终止条件写的不对&#xff0c;都…...

youtube 1080 分辨率 下载方式

YouTube 1080p Video Downloader 这张图像代表了Autodesk Maya中一个名为rocket_body_MAT的材质的着色器网络。下面是对节点及其连接的细分: 节点 place2dTexture12: 该节点用于控制2D纹理在表面上的位置映射。输出: Out UVrocket_body2.jpg: 该节点代表一个纹理文件,具体是…...

全新K4A4G165WG-BCWE000 4Gb DDR4 SDRAM 内存芯片 三星Samsung 进口芯片IC

K4A4G165WG-BCWE000 是三星半导体&#xff08;Samsung&#xff09;推出的一款4Gb DDR4 SDRAM 内存芯片&#xff0c;采用 96-ball FBGA 封装&#xff0c;组织为 256M 16 结构。它凭借 3200Mbps 的高数据速率、1.2V 低功耗设计以及 -40C 至 95C 的宽温工作能力&#xff0c;广泛应…...

智能内容解锁工具:5分钟掌握付费墙突破技巧

智能内容解锁工具&#xff1a;5分钟掌握付费墙突破技巧 【免费下载链接】bypass-paywalls-chrome-clean 项目地址: https://gitcode.com/GitHub_Trending/by/bypass-paywalls-chrome-clean 在数字信息时代&#xff0c;优质内容常被付费墙阻隔&#xff0c;而bypass-payw…...

nli-distilroberta-baseAI应用:心理健康聊天机器人对话逻辑连贯性监测

NLI DistilRoBERTa Base AI应用&#xff1a;心理健康聊天机器人对话逻辑连贯性监测 1. 项目概述 心理健康聊天机器人正成为越来越多人寻求心理支持的重要工具。然而&#xff0c;这类对话系统面临一个关键挑战&#xff1a;如何确保对话内容的逻辑连贯性&#xff1f;这正是nli-…...

Nexus | 连接预测和决策:数据驱动优化的进展和挑战

文章信息论文题目为《Bridging prediction and decision: Advancesand challenges in data-driven optimization》&#xff0c;该文于2025年发表于《Nexus》期刊上。摘要数据驱动方法通过将预测与决策相结合&#xff0c;彻底改变了传统的优化方法。文章探讨了三种关键方法 ——…...

突破性AI音乐创作革新:腾讯SongGeneration开源项目全解析

突破性AI音乐创作革新&#xff1a;腾讯SongGeneration开源项目全解析 【免费下载链接】SongGeneration 腾讯开源SongGeneration项目&#xff0c;基于LeVo架构实现高品质AI歌曲生成。它采用混合音轨与双轨并行建模技术&#xff0c;既能融合人声与伴奏达到和谐统一&#xff0c;也…...

益达App:5分钟打造你的个性化跨平台媒体中心

益达App&#xff1a;5分钟打造你的个性化跨平台媒体中心 【免费下载链接】yidaRule 益达规则仓库 项目地址: https://gitcode.com/gh_mirrors/yi/yidaRule 在信息爆炸的时代&#xff0c;我们每天都要面对海量的媒体内容——视频、音频、小说、漫画分散在各个平台和网站中…...

脑皮层房地产:公司在我的神经突触建数据中心

在数字时代的浪潮中&#xff0c;一个颠覆性的概念正在兴起&#xff1a;企业将数据中心直接构建于人类神经突触之上&#xff0c;仿佛一场“脑皮层房地产”的革命。这并非科幻小说的臆想&#xff0c;而是对现代分布式系统和人工智能架构的深刻隐喻。对于软件测试从业者而言&#…...

七年之痒:从零复现MaskRCNN的踩坑与重生指南

1. 为什么2024年还要复现MaskRCNN&#xff1f; 七年前第一次看到MaskRCNN的物体检测效果时&#xff0c;那种震撼感至今难忘。作为首个实现实例分割的经典网络&#xff0c;它在COCO数据集上展现的精准边界识别能力&#xff0c;让当时还在用Faster R-CNN的我们直呼"魔法&quo…...

逆流而上,逐光而行:光伏微逆的技术探索之路

交错反激光伏并网微逆&#xff1a;软件源程序硬件资料详细设计说明文档 产品介绍&#xff1a; 本项目用于单相光伏并网微型逆变器。 前级采用交错反激拓扑生成馒头波&#xff0c;后级采用SCR拓扑反向得到正弦波&#xff0c;带有&#xff1a;MPPT、锁相环、孤岛检测。 本项目支持…...

OpenClaw备份恢复指南:ollama-QwQ-32B模型与技能迁移方案

OpenClaw备份恢复指南&#xff1a;ollama-QwQ-32B模型与技能迁移方案 1. 为什么需要备份恢复方案 上周我的主力开发机突然硬盘故障&#xff0c;导致整个OpenClaw环境丢失。最痛苦的不是重装软件&#xff0c;而是那些精心调教过的技能配置和任务历史记录全部归零。这次经历让我…...