Posted on 2008-09-09 11:06
ZhouFeng 阅读(1017)
评论(0) 编辑 收藏 所属分类:
Web开发
这两天在想一个东东,就是在I18N,在考虑如何获取客户端的语言设置,后来在JSTL的example里找到一点信息,我们可以通过ServletRequest.getLocales()方法获得一个Local对象,再从Local对象里提取信息,为了做这个测试,我还在我的浏览器设置里多加了几个语言,如下图所示
然后写了一个测试的JSP页面
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Local Test</title>
</head>
<body>
<%
Enumeration enum_ = request.getLocales();
while (enum_.hasMoreElements()) {
Locale locale = (Locale)enum_.nextElement();
out.println("locale.getDisplayCountry():"+locale.getDisplayCountry()+"<br>");
out.println("locale.getDisplayName():"+locale.getDisplayName()+"<br>");
out.println("locale.getCountry():"+locale.getCountry()+"<br>");
out.println("locale.toString():"+locale.toString()+"<br>");
out.println("<hr>");
}
%>
</body>
</html>
Local对象还有很多方法可以调用,在此我只试了几个,运行后在浏览器里得到的结果如下
locale.getDisplayCountry():中国
locale.getDisplayName():中文 (中国)
locale.getCountry():CN
locale.toString():zh_CN
--------------------------------------------------------------------------------
locale.getDisplayCountry():
locale.getDisplayName():英文
locale.getCountry():
locale.toString():en
--------------------------------------------------------------------------------
locale.getDisplayCountry():香港
locale.getDisplayName():中文 (香港)
locale.getCountry():HK
locale.toString():zh_HK
获取了这样的信息后,在JSP页面里按照浏览器语言设置来进行页面跳转应该有办法了
在看JSTL的example时,里面也有对i18N的支持,不过还没有来得及学习,也许还有更好的处理办法,就像STRUTS里的i18N处理
今天也总算搞了点东西出来,又学到一点点,Good Good Study, Day Day Up