Java JSTL 拆分函数正则表达式

标签 java regex split jstl

我有 JSTL Java 代码,可以读取请求 header 接受语言参数

<c:set var="locale" value="<%= request.getHeader("Accept-Language") %>"/>

变量区域设置的值根据浏览器语言设置的顺序而变化。

有时候是这样的

en-GB,en;q=0.8,en-AU;q=0.6,en-US;q=0.4,en-CA;q=0.2

有时候是这样的

en,en-GB;q=0.8,en-AU;q=0.6,en-US;q=0.4,en-CA;q=0.2

无论哪种情况,我都想读取第一次出现的区域设置,例如 en-XX。在本例中为 en-GB。

我正在使用 split 函数,但我无法找出使用它来完成此任务的正确方法。

我这样做了,只有当 en-XX 是字符串中的第一个时它才有效

<c:set var="locale" value="<%= request.getHeader("Accept-Language").split(",")[0] %>"/>

非常感谢将正则表达式与 split 函数(或任何其他函数)合并方面的任何帮助。

谢谢

最佳答案

两个答案:

  1. 不要这样做(在 JSTL 中),但如果确实需要,请在 servlet 代码中这样做
  2. 不要这样做,而是使用 request.getLocale()

request.getLocale():

Returns the preferred Locale that the client will accept content in, based on the Accept-Language header.

做你想做的事可能是更好的选择。

关于Java JSTL 拆分函数正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35279901/

相关文章:

java - Java Enterprise 中的服务提供者接口(interface)

Java 正则表达式沿着单词、标点符号和空格进行分割,并将所有内容保存在一个数组中

regex - R 中 SQL LIKE 运算符的等价物

java - 如何在任何 "character, but never at\"拆分字符串(在 Java 中)? RegEx 是否合适,如果合适,如何?

java - 在 Java 中生成字母序列

java - 我可以减小用 LWUIT 编写的 J2ME jar 的大小吗?

java - 在后台 Javafx 运行函数

php - 正则表达式 (PHP) => 大于或不大于

php - 拆分并回显到列表中

java - 在 Android 中用 "\"拆分字符串