验证用于检查数据,以确保它符合为其设置的任何所需规范。通常,验证用于检查输入数据,以及在存储之前验证数据。
我正在使用 Golang 构建我的第一个 Web 服务。 我想要一个验证器来检查属性是否只有英文字母和标点符号。 我发现验证“github.com/astaxie...
Freemarker.core.InvalidReferenceException 尝试验证用户输入时出现错误 Apache FreeMarker出租物业
有这样的ftlh文件和注册表: 出租物业 有这样的ftlh文件和注册表: <!DOCTYPE html> <html lang="en"> <head> <title>Rental Property</title> </head> <body> <h2>User Registration</h2> <form action="/registration" method="POST"> <label for="name">Name:</label> <input type="text" id="name" name="name" value="${userForm.name!}" required> <#if errors?? && errors?has_content && errors.hasFieldErrors("name")> <div style="color:red;">${errors.getFieldError('name').defaultMessage}</div> </#if> <label for="lastName">Last Name:</label> <input type="text" id="lastName" name="lastName" value="${userForm.lastName!}" required> <#if errors?? && errors?has_content && errors.hasFieldErrors("lastName")> <div style="color:red;">${errors.getFieldError("lastName").defaultMessage}</div> </#if> <label for="email">Email Address:</label> <input type="email" id="email" name="email" value="${userForm.email!}" required> <#if errors?? && errors?has_content && errors.hasFieldErrors("email")> <div style="color:red;">${errors.getFieldError("email").defaultMessage}</div> </#if> <label for="phone">Phone:</label> <input type="tel" id="phone" name="phone" value="${userForm.phone!}"> <#if errors?? && errors?has_content && errors.hasFieldErrors("phone")> <div style="color:red;">${errors.getFieldError("phone").defaultMessage}</div> </#if> <label for="password">Password:</label> <input type="password" id="password" name="password" required> <#if errors?? && errors?has_content && errors.hasFieldErrors("password")> <div style="color:red;">${errors.getFieldError("password").defaultMessage}</div> </#if> <label for="replayPassword">Repeat Password:</label> <input type="password" id="replayPassword" name="replayPassword" required> <#if errors?? && errors?has_content && errors.hasFieldErrors("replayPassword")> <div style="color:red;">${errors.getFieldError("replayPassword").defaultMessage}</div> </#if> <label for="birthday">Date of Birth:</label> <input type="date" id="birthday" name="birthday"> <#-- <#if errors?has_content && errors.hasFieldErrors("birthday")>--> <#-- <div style="color:red;">${errors.getFieldError("birthday").defaultMessage}</div>--> <#-- </#if>--> <button type="submit">Register</button> </form> </body> </html> 有这样一种post请求处理方法: @PostMapping("/registration") public String registration(@ModelAttribute @Valid UserForm userForm, BindingResult result, Model model) { userValidator.validate(userForm, result); model.addAttribute("errors", result); if (result.hasErrors()) return "registration"; return "redirect:/"; } UserForm.java 类的每个字段上方是来自 jakarta.validation.constraints 的验证注释以及自定义验证器类。 当尝试在此控制器方法内发送有错误的数据时,验证将按其应有的方式工作,查找所有错误,并在尝试向用户显示不正确的数据时发生错误: freemarker.core.InvalidReferenceException: The following has evaluated to null or missing: ==> errors.getFieldError('name') [in template "registration.ftlh" at line 14, column 35] ---- Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${errors.getFieldError("name").defaul... [in template "registration.ftlh" at line 14, column 33] ---- at freemarker.core.InvalidReferenceException.getInstance(InvalidReferenceException.java:134) ~[freemarker-2.3.33.jar:2.3.33] at freemarker.core.UnexpectedTypeException.newDescriptionBuilder(UnexpectedTypeException.java:85) ~[freemarker-2.3.33.jar:2.3.33]... 我尝试将 ftlh 文件中的错误键更改为单引号,更改验证,发送整个组装的 UserForm 对象。 我怀疑问题是您没有启用公开 Java 8 默认方法。它是必需的,因为 FreeMarker 基于 java.beans.Introspector(官方 JavaBeans 内省器),而它忽略了它们。因此,正如 2.3.26 的版本历史记录所示(https://freemarker.apache.org/docs/versions_2_3_26.html): 添加了解决方法(默认情况下未启用)以将 Java 8 默认方法(以及它们定义的 bean 属性)公开给模板,尽管 java.beans.Introspector(官方 JavaBeans 内省器)会忽略它们,至少从 JRE 1.8.0_66 开始是这样。要启用此解决方法,请将 incompatibleImprovements 或 DefaultObjectWrapper 的 BeansWrapper 构造函数参数的值增加到 2.3.26,或者将其 treatDefaultMethodsAsBeanMembers 设置设置为 true。请注意,如果您将 object_wrapper 的 Configuration 设置保留为默认值,则将 incompatibleImprovements 的 Configuration 设置增加到 2.3.26 就足够了,因为它是由默认 object_wrapper 继承的。 我的建议是增加 incompatibleImprovements 的 Configuration 设置。否则,会模拟一些令人惊讶的问题以实现 100% 向后兼容性。有一个关于如何设置它的页面: https://freemarker.apache.org/docs/pgui_config_inknown_improvements.html#pgui_config_inknown_improvements_how_to_set
无法使用属性validation.typeMismatch进行输入
我尝试使用 Javascript 中的约束验证 API 规则进行验证的表单不起作用。我的输入设置为 类型=“电子邮件” 但是在我的 Javascript 中,我无法使用
tkinter 允许空输入并触发更新函数的浮点条目 validatecommand 和trace_add
仅将浮点数输入或粘贴到 tk.Entry 中(允许空字段除外),然后触发传递更新值的操作。这应该具有普遍性。 将 tkinter 导入为 tk def float_vali...
在 Django 中,您可以轻松使用 MinValueValidator 和 MaxValueValidator 来验证 IntergerFields。它们在 ReactJS 中的对应项是什么? 我在前端有一个表单(用 ReactJS 构建),其中
这是我面临“无效日期”问题的代码: 我试图使用日历控件选择 mm/dd/yyyy 格式的日期,并使用正则表达式验证此控件...
bootstrap 5 表单验证不适用于 textarea 模式属性?
我对我的表单使用了 bootstrap 5 表单验证方法。 https://www.w3schools.com/bootstrap5/bootstrap_form_validation.php 我尝试过使用输入元素的模式属性 我对我的表单使用了 Bootstrap 5 表单验证方法。 https://www.w3schools.com/bootstrap5/bootstrap_form_validation.php 我尝试过使用输入元素的模式属性 <div class="row"> <input type="text" class="form-control" id="abc_input" name="abc_input" required="" autocomplete="off" pattern=".*\S+.*"> <div class="invalid-feedback">Please provide a valid input value</div> <div class="valid-feedback">Looks good!</div> </div> 在上面的示例代码中,我尝试对必填字段和模式属性检查“仅不允许空格”。如果我跳过模式属性,则输入字段允许填充空白字符,这违反了我们所需的字段规则。 我也尝试申请textarea,但模式属性被浏览器忽略,因此bootstrap 5验证也无法正常工作。 <div class="row"> <textarea class="form-control" id="abc_textarea" name="abc_textarea" required="" autocomplete="off" pattern=".*\S+.*"> <div class="invalid-feedback">Please provide a valid value</div> <div class="valid-feedback">Looks good!</div> </div> 如果有人建议我验证textarea,这将对我有很大帮助。 我发现代码片段中缺少关闭</textarea>。 <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet"> <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script> <div class="container mt-3"> <form method="POST" class="was-validated"> <div class="row"> <input type="text" class="form-control" id="abc_input" name="abc_input" required="" autocomplete="off" pattern=".*\S+.*"> <div class="invalid-feedback">Please provide a valid input value</div> <div class="valid-feedback">Looks good!</div> </div> <div class="row"> <textarea class="form-control" id="abc_textarea" name="abc_textarea" required="" autocomplete="off" pattern=".*\S+.*"></textarea> <div class="invalid-feedback">Please provide a valid value</div> <div class="valid-feedback">Looks good!</div> </div> </form> </div> 正如Matthew所说,TextArea字段不能使用pattern属性。 在这里查看 Yann Dìnendal 的解决方案:(如果您喜欢,请投票!) 问题:如何验证文本区域中的模式匹配? 这可能是你能得到的最接近的..但是!-在加号上:至少它是一个可以在其他地方使用的通用函数
我正在使用带有动态字段(产品名称)的反应形式。如果提交表单时未填写产品名称,我可能会抛出验证错误。 但是当我点击添加按钮时,错误&...
有没有办法添加公式或VBA来翻译选定的单元格并在信息弹出窗口中显示该信息? (来自数据验证)。 或者任何其他方式以弹出样式显示翻译。 我可以
我有以下问题: 我想将 PDF/A-1A 文档转换为 PDF/A-3A。 原始文档经过 Arobat Reader Pro 验证,因此我可以假设它符合 PDF/A-1A 标准。 我尝试转换...
我需要一个文本框来输入人体身高。我需要使用 jquery 来做到这一点。是否有我可以用来执行验证的插件或代码示例。有人可以帮我验证...
我有一个简单的休息控制器,我在其中接受经过验证的对象: @RestController @RequestMapping(“v1/游戏”) 公共类游戏控制器{ @PostMapping 公共 GameCreateOutWeb
假设我有多个使用 user-id 作为参数的用例,因此必须在执行开始之前验证数据库中确实存在具有该 user-id 的用户。这适用于...
我正在尝试使用 Sequelize 默认禁用模型的验证。 目前,我总是使用以下方法创建/更新我的对象: Model.create({attrs}, {validate: false}) 我在模型文件中尝试过...
类型“FieldError”上不存在属性“required”。在 TypeScript 页面中使用 React Hook Form
我正在使用 React Hook Form 来验证输入字段。在 React.js 页面中,它运行得很好,正如您在下面的第一个屏幕截图中看到的那样。 但我尝试在 TypeScript p 中使用相同的代码...
假设我有多个使用 user-id 作为参数的用例,因此必须在执行开始之前验证数据库中确实存在具有该 user-id 的用户。这适用于...
这里有一个类似的案例,但没有解决方案 CarrierWave extension_white_list 似乎不起作用 Carrierwave提供了一个函数extension_white_list,它应该阻止用户上传...
我知道验证名字字段非常有争议,因为存在很多不同的可能性。然而,我只是在学习正则表达式并努力帮助......
我在 Formik 表单中遇到有关日期字段的 Yup 验证问题。我想阻止用户选择未来的日期。目前,验证仅在我单击...时才会触发