在 Freemarker 模板中显示 Spring MVC 验证错误

2023-12-04

如果控制器返回绑定错误,我试图在我的 freemarker 模板中显示全局验证错误列表。我可以显示与字段关联的错误,但我想检测特定 bean 中何时发生错误并在页面顶部显示一条消息。我尝试使用下面的示例,但它不产生任何输出:

<@spring.bind "webPage" />
....
<#if spring.status.error>
There were problems with the data you entered:
<ul>
<#list spring.status.errorMessages as error>
<li>${error?html}</li>
</#list>
</ul>
</#if>

尽管提交的表单有错误,下面的行始终返回 0:

${spring.status.errorMessages?size}

我的控制器代码如下:

@RequestMapping(method = RequestMethod.POST)
public ModelAndView save(@ModelAttribute("webPage") @Valid WebPage page, BindingResult result, Model model) {
    if (!model.containsAttribute("site")) {
        throw new IllegalArgumentException("Model must contain site attribute.");
    }
    Site site = (Site) model.asMap().get("site");
    if (!result.hasErrors() && !page.isNew()) {
        this.pageService.save(page, site);
    } else if (!result.hasErrors() && page.isNew()) {
        this.pageService.create(page, site);
    } 
    return createMav(result);
}

createMav 方法如下:

public ModelAndView createMav(BindingResult result) {
    ModelAndView mav = new ModelAndView();
    mav.setViewName(getPrimaryControllerView());
    mav.addAllObjects(result.getModel());
    return mav;
}

有没有办法使用 Freemarker + Spring MVC 来实现这一点?


我找到了一种使用标准 MVC JSP 标记库来完成此操作的迂回方法。我将其提供给 Freemarker:

<#assign form=JspTaglibs["http://www.springframework.org/tags/form"] />

然后我使用以下宏来显示全局错误消息:

<#macro formErrors>
    <#assign formErrors><@form.errors path="*" /></#assign>
    <#if formErrors?has_content>
        <div id="errors">
            <@spring.message "admin.error.globalMessage" />
        </div>
    </#if>
</#macro>

我只需将以下行放置在我希望出现此错误消息的位置(这必须包含在提交给控制器的表单元素中):

<@form.form method="POST" commandName="webPage">

            <@formErrors />                        
            ....
</@form.form>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Freemarker 模板中显示 Spring MVC 验证错误 的相关文章

  • 如何在spring mvc框架中运行后台进程

    我有一个网络应用程序 使用 spring mvc 框架 它使得以下内容 用户将文件上传到服务器 立即进入成功页面 使用该文件运行后台进程 那么 我如何使用 spring mvc 框架来做到这一点呢 先感谢您 使用异步标记方法 你在这里有例子
  • Spring Thymeleaf - 调用服务方法布尔值来显示 HTML 项目

    在我的标题 HTML 中 我显示一个 UL LI 菜单 其中 LI 项目之一的可见性取决于服务方法调用 我试过这个 家庭控制器 Controller public class HomeController private static fi
  • XHTML 和文本区域内的代码

    在我的一个使用文本区域进行提交的网站上 我的代码可以显示如下所示的内容
  • Spring Integration:SecurityContext 传播

    我对 Spring Integration 中的 SecurityContext 传播有一些困惑 这是文档的要点 http docs spring io spring integration reference htmlsingle sec
  • 使用 Spring 的 REST 多部分混合请求(文件+json)

    我需要将一个文件和一个 json 一起发送到我的 Spring 控制器 我有以下控制器类 Controller RequestMapping perform public class PerformController RequestMap
  • 如何在url请求中发送数组

    我的要求如下 我想给出演员姓名 开始日期 结束日期并获取他在该时期出演的所有电影 因此 我的服务请求是这样的 http localhost 8080 MovieDB GetJson name Actor startDate 20120101
  • 从 Zendframework 2 中的布局调用模型中的方法

    我尝试在 Zendframework 2 中调用模型表单布局中的方法来显示一些用户特定的内容 我尝试在 Module php 的 init 和 onBootstrap 中执行此操作 并尝试声明一些将在 layout phtml 中可用的变量
  • 使用 Spring 控制器处理错误 404

    I use ExceptionHandler处理我的网络应用程序抛出的异常 在我的例子中我的应用程序返回JSON回应HTTP status用于对客户端的错误响应 但是 我正在尝试弄清楚如何处理error 404返回与处理的类似的 JSON
  • 验证假名输入

    我正在开发一个允许用户输入日语字符的应用程序 我试图想出一种方法来确定用户的输入是否是日语假名 平假名 片假名或汉字 应用程序中的某些字段不适合输入拉丁文文本 我需要一种方法将某些字段限制为仅限汉字或仅限片假名等 该项目使用UTF 8编码
  • 在 Mysql 上使用 EntityManager JPA 运行脚本

    我正在尝试运行脚本 sql 文件 但由于我尝试了多种方法 因此出现多个错误 这是我的主要 sql 脚本 INSERT INTO Unity VALUES 11 paq 0 2013 04 15 11 41 37 Admin Paquete
  • Spring RestTemplate 使用 cookie 遵循重定向

    最近我遇到了一个问题 我需要做一个GET请求远程服务 我假设使用一个简单的 servlet 并且 RestTemplate 返回Too many redirects 经过一番调查 似乎对指定远程服务发出的第一个请求实际上只是一个 302 重
  • Freemarker没有分配staticUtil

    我在liferay 6 2上工作了应用程序显示模板 我使用freemarker帮助对liferay的动态数据列表进行分页 当我升级到liferay 7时 这是一个问题 Liferay 7使用代码 lt assign records ddlD
  • 身份验证在 Spring Boot 1.5.2 和 Oauth2 中不起作用

    我正在使用带有 spring boot 1 5 2 RELEASE 的 Oauth2 当我尝试重写 ResourceServerConfigurerAdapter 类的配置方法时 它给了我一个编译错误 但这在 Spring boot 1 2
  • 来自控制器的 Rails 验证

    有一个联系页面 可以输入姓名 电话 电子邮件和消息 然后发送到管理员的电子邮件 没有理由将消息存储在数据库中 问题 如何 在控制器中使用 Rails 验证 根本不使用模型 或者 在模型中使用验证 但没有任何数据库关系 UPD Model c
  • bean 范围的真实用例

    我正在学习 Spring 我了解了 bean 范围 它们每个的真实世界用例是什么 我无法获得任何帮助 请帮助何时在 Spring 中使用 Singleton Prototype Request 和 Session 作用域 辛格尔顿 它为每个
  • 如何根据服务器响应而不是HTTP 500触发 jquery.ajax() 错误回调?

    通过使用 jquery ajax 函数 我可以执行以下操作 ajax url url type GET async true dataType json data data success function data Handle serv
  • 如何使用 Spring Crud/Jpa Repository 实现 DDD

    我想通过使用 Spring 实现 DDD 来创建一个应用程序 假设我有一个业务实体 Customer 和一个接口 CustomerRepository 由于春天提供了CrudRepository and JpaRepository默认情况下
  • 自定义 jQuery 验证 .addMethod

    我有一个表单 可以根据最小 最大长度验证邮政编码 我需要将所有国家 地区的邮政编码最小设置为 5 位数字 澳大利亚除外 澳大利亚需要为 4 位数字 这是我遇到的问题 validator addMethod AusZip function v
  • 从 @JsonProperty 值获取枚举常量

    我有一个标有 JsonProperty 的枚举 用于使用 Jackson 进行 JSON 序列化 反序列化 并且希望获取给定字符串 JsonProperty 的枚举值 public enum TimeBucket JsonProperty
  • 禁用视图中所需的验证特定字段 ASP.NET MVC 4

    如果有人能给我一些提示 我将不胜感激 我搜索了一段时间 我什至找到了一个帖子 我认为它可以解决我的问题 但它没有 在某些情况下禁用必需的验证属性 https stackoverflow com questions 5367287 disab

随机推荐

  • fetchone() 正在将 int 变量设置为元组

    我有一个使用 Python 2 7 和 SQLite3 的项目 我正在尝试将整数变量存储在 SQLite3 数据库列中 然后能够将变量设置为 SQLite 列的值 连接正常 列存在 并且类型为 int 我正在使用此代码来提取数据 Trail
  • 有没有办法从以前的 apk 发布文件中获取私有签名的密钥库文件?

    我已经使用 eclipse 创建了私有签名的密钥库文件 并且我已经在 android market 网站上发布了 apk 文件 几天后 我们从用户那里收到了一些问题 我们已经解决了这些问题 但我没有私人签名的密钥库文件 在制作 apk 文件
  • 使用 VSTO 创建 UDF,而不使用 VBA

    与此类似question 但在我的情况下不是 VSTO SE 但是 我只是想确认不可能在 Visual Studio 2005 和 Excel 2003 中使用纯 VSTO 创建 UDF 所以 为了绝对清楚 我的问题是 是否可以使用 Vis
  • 从sql查询中的所有可用列中仅删除一列值的重复值

    我有一个包含三列的sql查询 我想删除beam current列中的任何重复值退出 如何做到这一点 我在sql server2012中工作 我使用了 Distinct 但我也得到了 beam current 的重复值 我的 sql 查询是
  • 如何将旧版构建系统与 Xcode 10 的“xcodebuild”一起使用?

    我想使用 Xcode 10 的新构建系统进行开发 但是我们在持续集成系统中的构建失败了 因为xcarchive制作有一个问题 Info plist in the xcarchive缺少ApplicationProperties密钥及其中的信
  • Select2-rails 无法与 ActiveAdmin 一起使用

    我在将 select2 rails 与 ActiveAdmin 集成时遇到困难 我按照设置步骤操作 Select2 rails Github 页面 https github com argerim select2 rails我添加了一行 r
  • c#编译的应用程序可以在未安装.net的机器上运行吗?

    我想为 Windows 开发一个小型实用程序 我更喜欢用 C 来做 因为它更容易 我是一名 Java 开发人员 该实用程序可供许多人下载 我假设其中一些人没有安装 net 框架 这个假设是否正确 假设我的目标是 win xp 及以上版本 我
  • 在Matlab中保存全局变量

    在 Matlab 中 当将变量声明为全局变量并使用 save 命令保存它时 在新会话中加载 mat 文件后 该变量也是全局变量 以下代码显示了此行为 一开始 我没有变量 gt gt who gt gt who global 然后 我创建全局
  • 更新间隔时间时警报管理器不工作

    阅读所有质量检查后 我没有得到任何正确的解决方案 我有 2 个问题1 即使我仅在清单中注册接收器 警报也会触发两次 不是通过代码 2 当我更新闹钟的间隔时间时 它会随机触发 这是我设置闹钟的方法 public void AlarmCall
  • 如何在java中扫描屏幕上的特定颜色/图像?

    我需要扫描屏幕上的特定图像 颜色 并返回该颜色出现位置的 x 和 y 坐标 我知道这可能包括使用 Robot 类截取屏幕截图 但不知道如何正确扫描该图像 如果您使用 Robot 类进行屏幕截图 您将获得 BuffereImage 类的对象
  • 使用 MIPS 的双重递归

    我正在尝试为该函数实现双重递归f n 2f n 1 3f n 2 1 我能够找出奇异递归并实现2f n 1 1它的一部分 但我不知道如何实现第二部分 这是我的奇异递归的工作代码 data prompt1 asciiz Enter the v
  • iPhone如何隐藏导航栏?

    目前我正在iPhone应用程序中工作 我有两个屏幕 如A和B A没有导航栏 但B有导航栏 所以我这样设置 Class A void viewDidLoad super viewDidLoad self title A self naviga
  • 将数据从部分视图提交到控制器 MVC

    我有一个就业记录列表 您还可以使用部分视图从同一页面添加就业记录 这里是雇佣 cshtml 它有一个记录列表的部分视图和一个用于添加出现在模式弹出窗口中的新记录的部分视图 h2 Employment Records h2 Html Rend
  • timedelta64 和日期时间转换

    我的数据框中有两个日期时间 时间戳 格式的列 df start df end 我想知道两个日期之间的持续时间 所以我创建了持续时间列 df duration df start df end 然而 现在duration列的格式为numpy t
  • Xcode 首选项 -> 帐户未保存

    一般在Xcode我们可以在偏好设置中保存不同的苹果帐户 它之前在之前的所有版本中都可以工作 上周我更新了Xcode并安装了Xcode version 10 0然后我添加了 3 4 个 Apple ID Xcode gt 首选项 gt 帐户
  • Swift:多个目标处理:宏不起作用[重复]

    这个问题在这里已经有答案了 从参考如何使用 swift 语言处理 XCode 中的多个目标 and https www appcoda com using xcode targets 我创建了三个目标 每个目标都有不同的包 ID 和应用程序
  • 如何将 Google Mock 与 CppUnitTestFramework 结合使用

    TL DR 您可以使用 GMock 向 Microsoft 本机 C 单元测试添加模拟功能 看我的答案请参阅下文了解详细信息 我想开始向我现有的一组本机单元测试添加模拟 这些测试是使用 Microsoft 编写的CppUnitTestFra
  • PHP pthread 中的对象变量丢失上下文

    我在 PHP 中使用 pthreads 并注意到 pthreads 在其上下文中丢失了对象变量 这是正常的还是错误 或者我做错了什么 class Downloader extends Thread private ch public fun
  • 嵌套函数或方法调用会降低应用程序的性能

    我正在使用 asp net 和 C 开发应用程序 其中我们的项目架构有很多嵌套函数调用 public Employe GetEmployeOrder orderid employe GetEmployeOrderWithDetails or
  • 在 Freemarker 模板中显示 Spring MVC 验证错误

    如果控制器返回绑定错误 我试图在我的 freemarker 模板中显示全局验证错误列表 我可以显示与字段关联的错误 但我想检测特定 bean 中何时发生错误并在页面顶部显示一条消息 我尝试使用下面的示例 但它不产生任何输出 lt sprin