使用 Spring 本地化异常消息

2024-02-27

我想使用 Spring 本地化从 POJO 类抛出的异常消息。我有一个 Spring MVC 应用程序,通过它我可以添加书籍。如果添加的书的标题为 null,则实现类会抛出异常。我想本地化这个。

我知道我可以在 JSP 页面中使用 localeResolvers 并且我已经这样做了。我可以利用它来获取 POJO 中的本地化错误消息吗?如果是这样,我如何将在 Cookie/Session 上设置的区域设置解析器(Cookie 或会话)或区域设置注入到 POJO 类中?

addBook 方法抛出异常

    public void addBook(IBook book) throws Exception {
    if (book.getTitle() == null || book.getTitle() == "") {
        throw new Exception("Title is null");
    }

我想要throw new Exception("Title is null");成为类似的东西

String msg = rBundle.getMessage(propKey)
throw new Exception(msg);

where rBundle是一个包对象,它知道它的区域设置和属性文件,它应该从中选择 propKey 的值

我的控制器类方法接收表单提交

@RequestMapping(method = RequestMethod.POST)
public String processSubmit(
        @RequestParam("siteLanguage") String siteLanguage,
        @ModelAttribute("book") Book book, BindingResult result,
        SessionStatus status, HttpServletRequest arg0) {
    logger.debug("Adding a Book");
    Locale loc = RequestContextUtils.getLocale(arg0);

    if (result.hasErrors()) {
        return "error.htm";
    } else {
        try {
            Author author = new Author("Gabriel Garcia Marquez");
            book.setAuthor(author);
            library.addBook(book);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return "redirect:home.htm";
    }
}

这可能吗?或者我更好地控制各自语言环境的 java ResourceBundle 的加载。

Thanks


为什么要本地化异常?:我猜异常存储在日志文件中,管理员应该能够读取它们,而无需了解用户所说的所有语言。

如果您正在谈论表单验证,那么请看一下 spring 表单验证和 jsr303 bean 验证,它们都包含本地化的概念。 (但两者都不适用于例外情况。)

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

使用 Spring 本地化异常消息 的相关文章

  • Java 枚举与创建位掩码和检查权限的混淆

    我想将此 c 权限模块移植到 java 但是当我无法将数值保存在数据库中然后将其转换为枚举表示形式时 我很困惑如何执行此操作 在 C 中 我创建一个如下所示的枚举 public enum ArticlePermission CanRead
  • 如何循环遍历所有组合,例如48 选择 5 [重复]

    这个问题在这里已经有答案了 可能的重复 如何在java中从大小为n的集合中迭代生成k个元素子集 https stackoverflow com questions 4504974 how to iteratively generate k
  • .properties 中的通配符

    是否存在任何方法 我可以将通配符添加到属性文件中 并且具有所有含义 例如a b c d lalalala 或为所有以结尾的内容设置一个正则表达式a b c anything 普通的 Java 属性文件无法处理这个问题 不 请记住 它实际上是
  • 为 java 游戏创建交互式 GUI

    大家好 我正在创建一个类似于 java 中的 farmville 的游戏 我只是想知道如何实现用户通常单击以与游戏客户端交互的交互式对象 按钮 我不想使用 swing 库 通用 Windows 看起来像对象 我想为我的按钮导入自定义图像 并
  • Spring AspectJ 在双代理接口时失败:无法生成类的 CGLIB 子类

    我正在使用Spring的
  • HSQL - 识别打开连接的数量

    我正在使用嵌入式 HSQL 数据库服务器 有什么方法可以识别活动打开连接的数量吗 Yes SELECT COUNT FROM INFORMATION SCHEMA SYSTEM SESSIONS
  • Java 公历日历更改时区

    我正在尝试设置 HOUR OF DAY 字段并更改 GregorianCalendar 日期对象的时区 GregorianCalendar date new GregorianCalendar TimeZone getTimeZone GM
  • 没有 Spring 的自定义 Prometheus 指标

    我需要为 Web 应用程序提供自定义指标 问题是我不能使用 Spring 但我必须使用 jax rs 端点 要求非常简单 想象一下 您有一个包含键值对的映射 其中键是指标名称 值是一个简单的整数 它是一个计数器 代码会是这样的 public
  • java.lang.IllegalStateException:提交响应后无法调用 sendRedirect()

    这两天我一直在尝试找出问题所在 我在这里读到我应该在代码中添加一个返回 我做到了 但我仍然得到 java lang IllegalStateException Cannot call sendRedirect after the respo
  • jdbc mysql loginTimeout 不起作用

    有人可以解释一下为什么下面的程序在 3 秒后超时 因为我将其设置为在 3 秒后超时 12秒 我特意关闭了mysql服务器来测试mysql服务器无法访问的这种场景 import java sql Connection import java
  • Java ResultSet 如何检查是否有结果

    结果集 http java sun com j2se 1 4 2 docs api java sql ResultSet html没有 hasNext 方法 我想检查 resultSet 是否有任何值 这是正确的方法吗 if resultS
  • 如何对不同的参数类型使用相同的java方法?

    我的问题 我有 2 个已定义的记录 创建对象请求 更新对象请求 必须通过实用方法进行验证 由于这两个对象具有相同的字段 因此可以对这两种类型应用相同的验证方法 现在我只是使用两种方法进行重载 但它很冗长 public record Crea
  • 获取文件的总大小(以字节为单位)[重复]

    这个问题在这里已经有答案了 可能的重复 java 高效获取文件大小 https stackoverflow com questions 116574 java get file size efficiently 我有一个名为 filenam
  • Opencv Java 灰度

    我编写了以下程序 尝试从彩色转换为灰度 Mat newImage Imgcodecs imread q1 jpg Mat image new Mat new Size newImage cols newImage rows CvType C
  • 找不到符号 NOTIFICATION_SERVICE?

    package com test app import android app Notification import android app NotificationManager import android app PendingIn
  • 在java中为组合框分配键

    我想添加一个JComboBox在 Swing 中这很简单 但我想为组合中的每个项目分配值 我有以下代码 JComboBox jc1 new JComboBox jc1 addItem a jc1 addItem b jc1 addItem
  • 使用 CXF-RS 组件时,为什么我们使用 而不是普通的

    作为后续这个问题 https stackoverflow com questions 20598199 对于如何正确使用CXF RS组件我还是有点困惑 我很困惑为什么我们需要
  • 如何将双精度/浮点四舍五入为二进制精度?

    我正在编写对浮点数执行计算的代码的测试 不出所料 结果很少是准确的 我想在计算结果和预期结果之间设置一个容差 我已经证实 在实践中 使用双精度 在对最后两位有效小数进行四舍五入后 结果始终是正确的 但是usually四舍五入最后一位小数后
  • 双枢轴快速排序和快速排序有什么区别?

    我以前从未见过双枢轴快速排序 是快速排序的升级版吗 双枢轴快速排序和快速排序有什么区别 我在 Java 文档中找到了这个 排序算法是双枢轴快速排序 作者 弗拉基米尔 雅罗斯拉夫斯基 乔恩 本特利和约书亚 布洛赫 这个算法 在许多数据集上提供
  • 如何防止在Spring Boot单元测试中执行import.sql

    我的类路径中有一个 import sql 文件 其中包含一些 INSERT 语句 当使用 profile devel 运行我的应用程序时 它的数据被加载到 postgres 数据库中 到目前为止一切正常 当使用测试配置文件执行测试时 imp

随机推荐

  • 伪元素内容的数据内容中的 Unicode

    我想使用 JQuery 将 unicode 放入 data content 属性中 以便将其用于伪元素内容 但我找不到正确的格式 你如何显示unicode 下面只是显示 x25BC a after content attr data con
  • Vim 从光标上次消失的位置开始

    如何让 Vim 始终从我上次退出给定文件时所在的行开始 将其放入您的 vimrc 中 When editing a file always jump to the last cursor position au BufReadPost if
  • WinForms C# 中优雅的日志窗口

    我正在寻找一种有效的方法来实现 Windows 窗体应用程序的日志窗口 过去我已经使用 TextBox 和 RichTextBox 实现了几个 但我仍然对功能不完全满意 此日志旨在为用户提供各种事件的最新历史记录 主要用于数据收集应用程序
  • 如何测量在 ubuntu 上运行的 java 应用程序的 I/O 时间?

    我想收集我的应用程序等待 I O 的时间 我正在 ubuntu linux 上运行这个 java 应用程序 我正在使用 yourkit 分析器 建议是否有其他分析工具来测量 I O 时间 Youtkit 非常适合在您的应用中使用变焦显微镜
  • 在循环中使用node-mysql插入数据

    我的代码如下 var mysql require mysql var client mysql createClient user root password root host localhost client query USE sam
  • jqgrid 增加字体大小时每个单元格周围的间距

    我使用以下 css 增加了网格单元格的字体大小 ui jqgrid ui jqgrid view font size 14px 现在 每个单元格中文本周围的间距都很小 如何增加该空间 以便较大的文本能够在每个单元格中正确显示 预先致谢 更新
  • 如何在oracle中使用DBMS_CRYPTO.encrypt函数

    我想加密数据库中的密码列 并且我正在尝试使用内部存在的加密函数DBMS CRYPTO包 已从 sys 帐户向当前用户授予执行访问权限 但出现以下错误 请举例说明如何使用此功能 select DBMS CRYPTO encrypt 12345
  • Bootstrap:将输入与按钮对齐

    为什么按钮和输入在 Bootstrap 中不能很好地对齐 我尝试了一些简单的事情 例如
  • 如何使用 PowerShell 了解 IIS 中托管的特定网站的活动会话计数

    我问了一个关于了解 IIS 中正在运行的会话计数的问题 从 IIS 获取我托管的 Asp Net 网站的运行会话计数 https stackoverflow com questions 9734561 get running session
  • 在 MS SQL Server 中隐藏表中的列

    任何人都可以分享在 SQL Server 2012 中隐藏表中特定列的步骤 因为我不想删除该列 我所说的隐藏是指每当我对特定表使用选择查询时 它永远不应该显示该列 是否可以 我需要使该列隐藏 无论任何用户登录和我使用的任何查询 第三者编辑
  • Xcode 由于 swift 中的持久容器而崩溃

    我目前正在制作一个实施核心数据的应用程序 但是 当我构建时 它在这一行崩溃 线程 1 致命错误 未解决的错误 错误 Domain NSCocoaErrorDomain Code 134140 持久存储迁移 失败 缺少映射模型 UserInf
  • 在 UIScrollView 中加载 200 多个子视图图像时程序崩溃

    我正在使用 ALAssetLibrary 开发类似的程序 例如 iPhone 中的照片 我正在尝试在滚动视图中加载图像 当相册中的图片数量较少时 一切正常 但是当我尝试加载包含 200 多张照片的相册时 我的程序结束了 没有任何错误消息 有
  • 为什么 icc 为一个简单的 main 生成奇怪的程序集?

    我有一个简单的program https godbolt org z 3KD2CM int main return 2 7 GCC 和 clang 都开启了优化 很乐意生成 2 个指令二进制文件 但 icc 给出了奇怪的输出 push rb
  • 如何在机器人框架中设置路径chrome驱动程序?

    现在 我设置路径变量 path D C Program Files Google Chrome Application Chrome C Program Files Google Chrome Application chromedrive
  • 仅当数据库中存在该表时才更新该表的 SQL

    我有一个 mySQL 数据库 可能有一个名为jason 数据库的单独实例可能没有jason表 它会有其他共同的表 我想对两个数据库运行一个简单的更新 但更新是针对jason table 我知道我可以做类似的事情 DROP TABLE IF
  • 使用索引像素格式将文本写入图像

    我有单色 TIFF 文件 1 bpp 我想向其中写入文本 当我将它们加载到 System Drawing Image 并尝试从该图像实例化 Graphics 对象时 我收到错误 无法从具有索引像素格式的图像创建 Graphics 对象 我可
  • 如何调整 UITableView 中原型单元格的左边距?

    如果我创建一个UITableViewController 例如通过文件 新项目 iOS 主从应用程序在 Xcode 中 一个UITableView是用原型单元创建的 生成的视图层次结构为 在单元格内容之间自动创建左侧 边距 UIView左边
  • 如何检查一个类是否已初始化?

    您可能会问 为什么我要这样做 这是因为我正在使用一个类 来自外部库 该类在其静态初始化程序中执行操作 并且我需要知道它是否已完成 我在看ClassLoader 但没有发现任何看起来有用的东西 有任何想法吗 您可以使用ClassLoader
  • 如何使用浅层测试酶 Reactjs 模拟 useLocation() 路径名?

    我有如下标头组件 import useLocation from react router dom const Header gt let route useLocation pathname return route user
  • 使用 Spring 本地化异常消息

    我想使用 Spring 本地化从 POJO 类抛出的异常消息 我有一个 Spring MVC 应用程序 通过它我可以添加书籍 如果添加的书的标题为 null 则实现类会抛出异常 我想本地化这个 我知道我可以在 JSP 页面中使用 local