【发布时间】:2017-11-06 11:31:35
【问题描述】:
我正在我的一个 Web 应用程序中实现多语言。用户选择的语言保存在 cookie 中。我已经能够通过这种方式从这个 cookie 中提取内容:
${cookie.userdata.value}
我遇到的问题是,语言不是我存储在这个 cookie 中的唯一内容。用户上次访问通知的时间也有一些时间戳。 cookie 的完整值是 JSON 格式:
userdata={
"notificationsViewed":1509696860036,
"documentNotificationsViewed":1509696859896,
"language":"en"
}
我需要的只是"en"。
在其他情况下,我使用 javascript 和 JSONParser 来获取语言,但我有一种情况,如果能够使用 JSTL / 表达式语言获取语言会很棒,但我一直找不到。到目前为止,我的尝试导致:
<c:set var="language">${cookie.userdata.value.language}</c:set>
javax.el.PropertyNotFoundException: The class 'java.lang.String' does not have the property 'language'.
我需要以某种方式使用 JSON 方法,但我什至不知道这是否可能。有人知道吗?
【问题讨论】:
-
您想在 javascript 或 java (jsp) 中何处使用该语言指示符 JSTL/EL 将在页面呈现期间工作,javascript 一旦在客户端浏览器中呈现?
-
在大多数情况下,它在使用 javascript 时有效。但是,正如您在渲染页面时所说的那样,一些旧代码会更容易使用。
-
在下面查看我的答案。我在那里解决了这两种情况。