当前位置: 首页 > 面试题库 >

如何从Java代码设置JSTL语言环境?

万俟铭
2023-03-14
问题内容

我想设置<fmt:formatNumber>和朋友使用的JSTL语言环境。我知道可以使用<fmt:setLocale>,但我需要动态地进行操作(取决于从数据库中检索到的用户数据),并且更喜欢Java代码-
确切地说是一个过滤器类。

我以为将session属性设置为javax.servlet.jsp.jstl.fmt.locale所需的Locale实例可以解决问题,但是它被忽略了:JSTL标记继续使用浏览器的语言环境。

我确认没有页面上下文或相同名称的请求属性。

那我在做什么错?还是我真的需要通过JSP做到这一点?

阅读JSTL代码后,我找到了对a的引用,LocalizationContext并认为我需要设置一个。不过,我还不太清楚它到底如何适合图片或如何设置图片。


问题答案:

您需要第二个:

设置JSTL语言环境的3种方法: /以及默认应用程序资源包,时区和数据源/

  1. 通过JSTL操作设置–这允许通过scope属性指定范围。

    <fmt:setLocale value="en_US" scope="session"/>
    
  2. 编程方式设置–允许通过Config API指定范围。

        import javax.servlet.jsp.jstl.core.Config;
    (...)
    Config.set( session, Config.FMT_LOCALE, new java.util.Locale("en", "US") )
    // or Locale.forLanguageTag("en-US") (java 1.7 and later)
  1. 上下文 初始化参数设置–指定在任何标准作用域中未找到设置时使用的值。
        <context-param>
        <param-name>javax.servlet.jsp.jstl.fmt.locale</param-name>
        <param-value>en_US</param-value>
    </context-param>

jstl-快速参考(PDF)



 类似资料:
  • 问题内容: 当我在Linux机器上使用默认的Java语言环境时,它带有美国语言环境设置,应在哪里进行更改以使其具有正确的语言环境? 问题答案: 我相信Java会从启动它的环境变量中收集这些信息,因此您需要确保正确设置LANG和LC_ *环境变量。 语言环境手册页包含有关所述环境变量的完整信息。

  • 问题内容: 从Java代码了解操作系统语言(语言环境)的正确方法是什么? 我努力了 等等 但它们不正确,实际上什么也没有显示Windows中可通过命令“ systeminfo”使用的“系统区域设置”。 请帮忙。 问题答案: Windows XP 命令显示了很多内容,但是相关信息是这样的: 要获取Java中的等效信息,请使用获取Java正在使用的语言环境,并使用Locale对象上的方法(如)来获取详

  • 问题内容: 我想将我的JVM的默认语言环境设置为。有哪些可能的选择呢? 我只知道一种选择 问题答案: 从Oracle参考: 应用程序的默认语言环境是通过三种方式确定的。首先,除非你已显式更改默认值,否则该 方法将返回Java虚拟机(JVM)首次加载时最初确定的语言环境。也就是说,JVM从主机环境中确定默认语言环境。主机环境的语言环境由主机操作系统和在该系统上建立的用户首选项确定。 其次,一些Jav

  • 问题内容: 我用来将货币从BigDecimal格式化为字符串。按预期工作,问题在于我们的主要目标是荷兰市场,而默认的荷兰格式很奇怪。 让我解释一下,当格式化-125时,荷兰语将得到“€125-”(预期为“-€125”)。英国按预期方式提供“-£125.50”。 我可以检查语言环境是否为荷兰语,然后在每次我要设置小数格式时都提供一个模式。但是我更喜欢一个解决方案,它可以覆盖荷兰的格式设置。我在考虑以

  • 我下载了android应用程序的处理文件(这里是链接http://www.gwoptics.org/processing/mobile/BouncingBall/)我尝试在处理时进行编译,但出现以下两个错误: 找不到android.content.res的库 库必须安装在“sketchbook”文件夹中名为“Libraries”的文件夹中。 我想从这个项目生成整个java,这样我就可以使用它的一些

  • 问题内容: 如何在Playframework 2.2(java)中不仅从用户浏览器设置而且从子域(应该具有更高的优先级)设置语言(i18n)? 以下应该工作: example.com->英语或德语,具体取决于浏览器设置 en.example.com->强制使用英语 de.example.com->强制德语 用户应该能够在子域之间切换而不会丢失会话。 因为我有很多Java控制器,所以如果解决方案在集