如何修改OpenXava中MONEY stereotype的货币符号 南非区域显示异常
问题诱因
- OpenXava的本地化优先级高于操作系统、浏览器的区域设置,默认优先读取应用内部的硬编码或配置文件设定,不会自动继承系统/浏览器偏好
- 项目
application.properties配置文件中默认区域或默认货币配置错误,比如指定了默认货币为USD、默认区域为美国/英国等非南非区域 - 实体类中货币字段的注解硬编码了美元货币类型或格式化规则,强制覆盖全局配置显示$符号
- 若使用多租户版本OpenXava,租户级别的区域、货币配置未修改,也会覆盖全局设置
解决方法
- 第一步:修改应用全局配置
找到项目路径下
src/main/resources/application.properties文件,添加或修改如下配置:
# 设置默认区域为南非英语 defaultLocale=en_ZA # 强制指定默认货币为南非兰特(货币代码ZAR) defaultCurrency=ZAR
- 第二步:检查实体类字段注解
检查所有货币类型的实体字段,删除硬编码的美元相关配置:- 移除类似
@Money(currency="USD")的指定货币参数,保留纯@Money注解即可适配全局配置 - 移除类似
@NumberFormat(pattern = "$#.00")的硬编码美元符号格式化规则
- 移除类似
- 第三步:重启验证
修改完成后清空项目编译缓存,重启OpenXava应用,再清除浏览器缓存后访问即可生效。 - 多租户场景额外操作:进入租户管理后台,将对应用户所属租户的区域、货币配置分别修改为南非、ZAR即可。
内容的提问来源于stack exchange,提问作者javierpaniza
相关产品推荐
相关产品推荐

