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

2026.5.12@霖宇博客制作中遇见的问题

1oneel-form :modelpasswordForm :rulesrules refformRef label-width100px el-form-item label原密码 propoldPassword el-input v-modelpasswordForm.oldPassword typepassword placeholder请输入原密码 show-password / /el-form-item解读这段代码这段代码是使用 Vue.js 和 Element Plus UI 库构建的一个表单片段专门用于收集用户的“原密码”。下面为你逐层解读 整体结构el-form 组件el-form 是 Element Plus 提供的表单容器组件它负责整合和管理内部所有表单项的数据和校验规则。- :modelpasswordForm- 这是一个数据绑定。它将表单与一个名为 passwordForm 的响应式数据对象关联起来。表单内所有输入框的值都会同步到这个对象中。- :rulesrules- 这是校验规则的绑定。它将一个名为 rules 的对象作为整个表单的校验规则集。这个 rules 对象里定义了每个字段如 oldPassword需要遵守的规则比如是否必填、长度限制等。- refformRef- 这是一个引用标识。它为这个 el-form 组件实例起了一个名字叫 formRef。在 JavaScript 代码中你可以通过 formRef 来获取这个表单实例并调用其方法例如 formRef.value.validate() 来手动触发表单的整体校验。- label-width100px- 这是一个样式设置。它统一设置了表单内所有标签label的宽度为 100 像素使表单看起来更整齐对齐。✍️ 表单项el-form-item 组件el-form-item 是表单中的单个项目容器用于包裹一个标签和一个输入控件。- label原密码- 这定义了该表单项的标签文本即用户看到的“原密码”这几个字。- propoldPassword- 这是实现校验的关键。它指定了当前这个表单项对应 passwordForm 数据模型中的哪个属性。Element Plus 会根据这个 prop 的值去 :rules 对象中找到对应的校验规则并对 passwordForm.oldPassword 的值进行验证。⌨️ 输入控件el-input 组件el-input 是 Element Plus 提供的输入框组件。- v-modelpasswordForm.oldPassword- 这是双向数据绑定。它将输入框的值与 passwordForm 对象里的 oldPassword 属性实时同步。用户在输入框中输入内容时passwordForm.oldPassword 的值会随之改变反之亦然。- typepassword- 这指定了输入框的类型为密码框。用户输入的字符会被隐藏通常显示为圆点或星号。- placeholder请输入原密码- 这是在输入框为空时显示的灰色提示文字。- show-password- 这是 Element Plus 提供的一个便捷功能。它会在输入框右侧添加一个“小眼睛”图标用户可以点击该图标来切换显示或隐藏输入的密码明文。总结来说这段代码创建了一个带有“原密码”标签的密码输入框。它在视觉上提供了“显示/隐藏密码”的功能在逻辑上将用户的输入值实时保存到 passwordForm.oldPassword 变量中并且准备就绪可以根据预设的规则对这个输入值进行校验。2.two// 密码的校验规则 password: [ // 规则1必填校验 { required: true, message: 请输入密码, trigger: blur }, // 规则2限制密码长度在 6 到 20 个字符之间 { min: 6, max: 20, message: 密码长度在 6 到 20 个字符, trigger: blur } ],密码中不能包含空格怎么写要实现密码中不能包含空格最优雅和直接的方法是使用正则表达式进行校验。你可以在现有的 password 校验规则数组中添加一个新的规则对象。 解决方案使用正则表达式你可以添加一个 pattern 规则利用正则表达式 /^\S$/ 来确保输入的字符串不包含任何空白字符包括空格、制表符等。修改后的代码如下javascript编辑1// 密码的校验规则2password: [3 // 规则1必填校验4 { required: true, message: 请输入密码, trigger: blur },5 // 规则2限制密码长度在 6 到 20 个字符之间6 { min: 6, max: 20, message: 密码长度在 6 到 20 个字符, trigger: blur },7 // 规则3禁止输入任何空格8 { pattern: /^\S$/, message: 密码中不能包含空格, trigger: blur }9],代码解读- pattern: /^\S$/- ^ 和 $分别代表字符串的开始和结束确保对整个字符串进行匹配。- \S这是一个特殊字符代表“非空白字符”。它与 \s (代表空格、制表符等) 相反。- 表示前面的元素即 \S可以出现一次或多次。- 综合起来/^\S$/ 的意思是整个字符串必须完全由一个或多个非空白字符组成。只要出现一个空格校验就会失败。✨ 进阶方案自定义校验函数如果你的密码规则变得更复杂比如要求同时包含字母、数字和特殊符号并且不能有空格那么使用自定义校验函数 (validator) 会更灵活。javascript编辑1// 密码的校验规则2password: [3 { required: true, message: 请输入密码, trigger: blur },4 { min: 6, max: 20, message: 密码长度在 6 到 20 个字符, trigger: blur },5 // 使用自定义函数进行更复杂的校验6 {7 validator: (rule, value, callback) {8 if (!value) {9 // 这个错误会被上面的 required: true 规则捕获这里可以省略10 return callback();11 }12 // 检查是否包含空格13 if (/\s/.test(value)) {14 callback(new Error(密码中不能包含空格));15 } else {16 callback(); // 校验通过17 }18 },19 trigger: blur20 }21],对于你目前的需求第一种使用 pattern 的方案更加简洁高效。3threeusername: [ { required: true, message: 请输入用户名, trigger: blur } ],用户名只能输入大小写字母和数字不能有特殊字符要实现用户名只能包含大小写字母和数字你可以利用 Element Plus 表单校验规则中的 pattern 属性通过一个正则表达式来限制输入内容。你只需要在现有的 username 规则数组中添加一个新的规则对象即可。 解决方案使用正则表达式添加的规则如下javascript编辑1{ pattern: /^[a-zA-Z0-9]$/, message: 用户名只能包含字母和数字, trigger: blur }代码解读- pattern: /^[a-zA-Z0-9]$/- ^ 和 $分别代表字符串的开始和结束确保对整个字符串进行匹配而不是部分匹配。- [a-zA-Z0-9]这是一个字符集表示只允许匹配小写字母 (a-z)、大写字母 (A-Z) 和数字 (0-9)。- 表示前面的字符集可以出现一次或多次。这确保了用户名不能为空当然空值的校验已经由 required: true 处理了。- 综合起来这个正则表达式的意思是整个字符串必须完全由一个或多个字母或数字组成。完整代码示例将新规则加入后你的 username 校验规则应该像这样javascript编辑1username: [2 { required: true, message: 请输入用户名, trigger: blur },3 { pattern: /^[a-zA-Z0-9]$/, message: 用户名只能包含字母和数字, trigger: blur }4],4.four该错误的核心原因是MySQL 在执行 SQL 更新时接收到一个本应是整数值的参数id但实际传入的却是一个 Java 对象的序列化字节流以 \xAC\xED\x00\x05 开头这是 Java 对象序列化特有的魔数。从堆栈中的 SQL 语句sqlUPDATE admin SET password? WHERE (id ?)可以看到更新时两个占位符分别对应 password字符串和 id整数。而错误信息明确指出 “Truncated incorrect INTEGER value”说明在设置 id 参数时数据库收到的数据不是整数而是类似 com.blog.personalBlogAdmin.admin.entity.po.Admin 对象的序列化内容。常见的原因有以下几种Mapper 方法参数传递错误在 AdminMapper 中可能自定义了一个 update 方法但调用时错误地将整个 Admin 实体对象传给了 id 参数的位置。例如adminMapper.update(password, admin) 或 adminMapper.update(admin) 而 SQL 映射中却写了 where id #{xxx}导致 MyBatis 把 admin 对象尝试转换成 INTEGER。误用 MyBatis-Plus 的 update 方法调用 update(T entity, WrapperT wrapper) 时如果不小心将 entity 传给了 wrapper 参数或者 Wrapper 中错误地使用了对象而非条件字段可能导致条件值变成整个对象序列化后的形式。或者直接写了 adminMapper.update(admin, null)并且 admin 对象的某个字段如 id被错误地映射到了 SQL 中的 id 占位符。使用了不正确的 Param 注解或 XML 参数引用若在 Mapper 接口中定义了类似 int update(Param(password) String password, Param(admin) Admin admin);但在 XML 中却写了 where id #{admin}就会把整个 Admin 对象作为参数填充到 id 位置上。序列化问题较少见如果某个拦截器或处理器错误地将对象直接写入 JDBC 参数而不经过类型转换也可能导致此现象。但从堆栈看更可能是代码层面的参数错位。排查建议检查 AdminBaseFacade.resetOneselfPassword 方法第 266 行附近的调用确认传递给 adminMapper.update(...) 的参数是否正确。如果使用的是 MyBatis-Plus 的 updateById(admin)请确保 admin.getId() 返回的是 Integer 或 Long 类型且不为空同时确认 admin 对象没有被序列化成奇怪的格式传递到 SQL 中一般 updateById 不会出现此问题除非自定义了其他拦截器。检查 AdminMapper 中是否存在自定义的 update 方法XML 或注解核实参数名称与顺序是否匹配。简单来说就是本应放 id 值的地方放了一个 Java 对象导致数据库无法把序列化字节流转换成整数。5.five

相关文章:

2026.5.12@霖宇博客制作中遇见的问题

1 one<el-form :model"passwordForm" :rules"rules" ref"formRef" label-width"100px"> <el-form-item label"原密码" prop"oldPassword"> <el-input v-model"passwordFor…...

第67篇:Vibe Coding时代:FastAPI + LangGraph 审批台实战,解决高风险 Agent 操作人工确认体验差的问题

第67篇:Vibe Coding时代:FastAPI + LangGraph 审批台实战,解决高风险 Agent 操作人工确认体验差的问题 一、问题场景:Agent 需要人工确认,但用户不知道该确认什么 前面我们已经做过人工确认: approval = APPROVED / REJECTED但真实平台中,审批不能只是一个字符串。 当…...

抖音内容采集技术方案深度解析:架构设计与企业级应用实战指南

抖音内容采集技术方案深度解析&#xff1a;架构设计与企业级应用实战指南 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallbac…...

三月七小助手:星穹铁道自动化工具如何帮你每天节省30分钟游戏时间

三月七小助手&#xff1a;星穹铁道自动化工具如何帮你每天节省30分钟游戏时间 【免费下载链接】March7thAssistant 崩坏&#xff1a;星穹铁道全自动 三月七小助手 项目地址: https://gitcode.com/gh_mirrors/ma/March7thAssistant 你是否每天花费大量时间在《崩坏&#…...

DroidCam OBS插件:如何将手机摄像头变成专业直播设备?

DroidCam OBS插件&#xff1a;如何将手机摄像头变成专业直播设备&#xff1f; 【免费下载链接】droidcam-obs-plugin DroidCam OBS Source 项目地址: https://gitcode.com/gh_mirrors/dr/droidcam-obs-plugin 还在为直播设备预算不足而发愁&#xff1f;想让手机摄像头发…...

【Matlab】MATLAB教程:Simulink与MATLAB交互(MATLAB函数模块案例+混合编程仿真)

MATLAB教程:Simulink与MATLAB交互(MATLAB函数模块案例+混合编程仿真) 本教程适配MATLAB R2020a及以上版本,聚焦Simulink与MATLAB交互核心技能,以MATLAB函数模块为核心案例,详解混合编程仿真的全流程,无需深厚编程基础,纯实操导向、案例可直接复刻,适配高校课程设计、…...

Elsevier Tracker:科研工作者必备的智能投稿状态追踪工具

Elsevier Tracker&#xff1a;科研工作者必备的智能投稿状态追踪工具 【免费下载链接】Elsevier-Tracker 项目地址: https://gitcode.com/gh_mirrors/el/Elsevier-Tracker 作为科研工作者&#xff0c;您是否曾因频繁登录Elsevier投稿系统查看审稿进度而感到疲惫&#x…...

基于Laravel的BeikeShop开源电商平台:从架构解析到生产部署实战

1. 项目概述&#xff1a;为什么选择BeikeShop作为你的开源电商起点&#xff1f;如果你正在寻找一个能让你完全掌控代码和数据&#xff0c;同时又不想从零开始造轮子的电商解决方案&#xff0c;那么BeikeShop绝对值得你花时间深入了解。作为一个基于Laravel 10构建的、100%开源的…...

Tree of Thoughts详解:思维树搜索算法

&#x1f333; 多路径探索 | 广度优先 深度优先搜索 | 自我评估 回溯机制 | LangChain实现 | 完整项目代码 &#x1f4d6; 什么是Tree of Thoughts&#xff1f; 核心思想 ToT Tree of Thoughts&#xff08;思维树&#xff09; 传统LLM: 输入 → 线性思考 → 输出&#xf…...

合肥全屋定制,真的能满足我的独特需求吗?

在合肥&#xff0c;全屋定制大概率能满足您的独特需求&#xff0c;但这并非绝对&#xff0c;关键在于您的具体要求、预算以及选择的品牌。✅ 合肥市场能满足的“独特需求”个性化风格与功能设计合肥的定制品牌已相当成熟&#xff0c;能够承接各种个性化需求&#xff0c;而非简单…...

DOIP认知

1&#xff0c;概述 DOIP&#xff08;Diagnostic communication over Internet Protocol&#xff09;是基于以太网传输诊断数据的协议&#xff0c;规范于ISO13400标准。其核心功能是在TCP/IP协议栈之上构建诊断通信层&#xff0c;实现外部测试设备与车载网络之间的连接。 在ISO七…...

SpringBoot多环境配置全解+配置优先级管控

企业级SpringBoot项目开发流程分为开发环境、测试环境、预发布环境、生产环境四大核心场景&#xff0c;不同环境数据库连接地址、端口号、日志级别、接口域名、加密密钥、线程池参数等配置完全不同。若所有环境共用一套配置&#xff0c;每次环境切换手动修改配置参数&#xff0…...

KeyboardChatterBlocker:彻底解决机械键盘连击问题的免费开源方案

KeyboardChatterBlocker&#xff1a;彻底解决机械键盘连击问题的免费开源方案 【免费下载链接】KeyboardChatterBlocker A handy quick tool for blocking mechanical keyboard chatter. 项目地址: https://gitcode.com/gh_mirrors/ke/KeyboardChatterBlocker 机械键盘在…...

ServerPackCreator:3分钟搞定Minecraft服务器包配置的智能自动化工具

ServerPackCreator&#xff1a;3分钟搞定Minecraft服务器包配置的智能自动化工具 【免费下载链接】ServerPackCreator Create a server pack from a Minecraft Forge, NeoForge, Fabric, LegacyFabric or Quilt modpack! 项目地址: https://gitcode.com/gh_mirrors/se/Server…...

城通网盘直连解析工具:3分钟告别限速烦恼

城通网盘直连解析工具&#xff1a;3分钟告别限速烦恼 【免费下载链接】ctfileGet 获取城通网盘一次性直连地址 项目地址: https://gitcode.com/gh_mirrors/ct/ctfileGet 还在为城通网盘那令人抓狂的下载速度而苦恼吗&#xff1f;每次下载大文件都要面对漫长的等待倒计时…...

彻底解决机械键盘连击问题:免费开源工具KeyboardChatterBlocker完全指南

彻底解决机械键盘连击问题&#xff1a;免费开源工具KeyboardChatterBlocker完全指南 【免费下载链接】KeyboardChatterBlocker A handy quick tool for blocking mechanical keyboard chatter. 项目地址: https://gitcode.com/gh_mirrors/ke/KeyboardChatterBlocker 你是…...

智能体的核心能力到底是什么?看完彻底刷新认知

文章目录前言一、智能体的本质&#xff1a;从“回答问题”到“解决问题”的范式跃迁二、智能体的四大核心能力&#xff0c;少一个都是伪智能体2.1 自主规划能力&#xff1a;把复杂目标拆成可执行步骤2.2 工具调用与编排能力&#xff1a;按需组合工具&#xff0c;而不是只会调用…...

FakeLocation:你的手机位置自由指南,3个场景让位置掌控更简单

FakeLocation&#xff1a;你的手机位置自由指南&#xff0c;3个场景让位置掌控更简单 【免费下载链接】FakeLocation Xposed module to mock locations per app. 项目地址: https://gitcode.com/gh_mirrors/fak/FakeLocation 还在为社交软件的位置限制烦恼吗&#xff1f…...

使用taotoken后c语言项目调用大模型的延迟与稳定性实际体验

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 使用taotoken后c语言项目调用大模型的延迟与稳定性实际体验 在开发一个需要集成大模型能力的C语言桌面应用时&#xff0c;我们面临…...

深度解析:如何高效实现Android应用级定位模拟的完整方案

深度解析&#xff1a;如何高效实现Android应用级定位模拟的完整方案 【免费下载链接】FakeLocation Xposed module to mock locations per app. 项目地址: https://gitcode.com/gh_mirrors/fak/FakeLocation 在移动应用开发和测试领域&#xff0c;精准控制定位信息是确保…...

嘉兴看牙哪家靠谱?2026年本地6家口腔机构实测排行榜(纯生活体验版)

问这个问题的人&#xff0c;多半是被坑过、排过队、或者被推销烦过。作为一个在嘉兴生活了快十年的普通市民&#xff0c;补牙、洗牙、带孩子看牙都经历过&#xff0c;我也踩过不少坑。这次花了两周时间&#xff0c;跑了南湖、秀洲、平湖几家口碑还行的口腔机构&#xff0c;纯从…...

如何用 writable 属性描述符限制 JavaScript 对象属性修改.txt

Lock wait timeout exceeded 表示事务等待行锁超时&#xff08;默认50秒&#xff09;&#xff0c;本质是被其他长事务或未提交操作阻塞&#xff0c;并非数据库性能问题&#xff1b;需通过INNODB_TRX和performance_schema定位锁源&#xff0c;排查索引缺失、MDL锁及锁链式等待。…...

RT-Thread Smart下基于74LV595的KSZ8081网卡复位与驱动移植实战

1. 硬件连接与复位逻辑解析 第一次拿到i.MX6ULL开发板时&#xff0c;我发现KSZ8081网卡的复位引脚竟然接在了74LV595芯片上&#xff0c;这和常见的直接连接GPIO的设计完全不同。这种设计虽然节省了GPIO资源&#xff0c;但给驱动开发带来了新挑战。 74LV595是典型的串行输入并行…...

掌控AMD Ryzen性能:5步精通SMUDebugTool硬件调试技巧

掌控AMD Ryzen性能&#xff1a;5步精通SMUDebugTool硬件调试技巧 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https://git…...

C#架构师实战:构建确定性事件驱动系统的工程原则与技术栈

1. 从个人简介到架构哲学&#xff1a;一位资深C#架构师的工程实践全景看到这个标题&#xff0c;你可能会以为这是一个普通的GitHub个人主页介绍。但如果你是一位深耕于分布式系统、事件驱动架构&#xff0c;或者正在为构建高确定性、可观测的生产级系统而头疼的工程师&#xff…...

AI智能转码 + 原生高性能:QQ音乐存量代码迁移Kuikly实践

导语 Kuikly 是腾讯开源的高性能跨端开发框架&#xff0c;支持基于 Kotlin 原生开发语言构建 Android、iOS、鸿蒙、Web、小程序及 Mac 多端应用。作为较早接入Kuikly的业务&#xff0c;QQ音乐一直深度使用Kuikly&#xff0c;已累计开发200页面&#xff0c;并持续迁移存量页面至…...

高效虚拟显示器驱动深度解析:Parsec VDD从原理到实战的完整指南

高效虚拟显示器驱动深度解析&#xff1a;Parsec VDD从原理到实战的完整指南 【免费下载链接】parsec-vdd ✨ Perfect virtual display for game streaming 项目地址: https://gitcode.com/gh_mirrors/pa/parsec-vdd Parsec Virtual Display Driver (Parsec VDD)是一款基…...

在Hermes Agent项目中配置Taotoken作为自定义模型供应商的详细步骤

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 在Hermes Agent项目中配置Taotoken作为自定义模型供应商的详细步骤 对于使用Hermes Agent框架的开发者而言&#xff0c;接入不同的…...

“宏”的概念,什么是“宏”?

“宏”&#xff08;Macro&#xff09;本质上是一种批量处理的自动化机制&#xff0c;其核心概念是&#xff1a;将一系列频繁执行的操作、命令或代码片段预先录制或编写成一个“指令集”&#xff0c;通过一个简短的触发动作&#xff08;如快捷键、按钮点击&#xff09;来一次性调…...

《机密计算破局政务金融、截图工具漏洞泄露NTLM哈希、智能体仿冒日增200+:AI安全的三场“攻防战”》

一、全链路机密计算破局&#xff1a;政务/金融敏感数据进入“可信推理”时代当前&#xff0c;大模型落地过程中面临的核心矛盾在于&#xff1a;越是高价值的专业技术领域&#xff0c;其训练数据和实时推理数据的安全级别就越高。在政务场景中&#xff0c;政府规划、财政数据、内…...