js代码:
必须导包:<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="UTF-8" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="Expires" content="0">
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Title</title>
</head>
<body>
<!--使用标签设置locale信息-->
<fmt:setLocale value="${param.locale}"/>
<!--使用标签设置basename-->
<fmt:setBundle basename="i18n"/>
<a href="i18.jsp?locale=zh_CN">中文</a>|
<a href="i18.jsp?locale=en_US">english</a>
<center>
<h1><fmt:message key="regist"/></h1>
<table>
<form>
<tr>
<!--使用标签设置输出国际化信息,key填写的是配置文件里对象信息-->
<td><fmt:message key="username"/></td>
<td><input name="username" type="text"/></td>
</tr>
<tr>
<td><fmt:message key="password"/></td>
<td><input name="password"/></td>
</tr>
<tr>
<td><fmt:message key="sex"/></td>
<td><input type="radio"/><fmt:message key="boy"/>
<input type="radio"/><fmt:message key="girl"/>
</td>
</tr>
<tr>
<td><fmt:message key="email"/></td>
<td><input type="text"/></td>
</tr>
<tr>
<td colspan="2" align="cemter">
<input type="reset" value="<fmt:message key="reset"/>"/>
<input type="submit" value="<fmt:message key="submit"/>"/>
</td>
</tr>
</form>
</table>
<br/> <br/> <br/> <br/>
</center>
</body>
</html>
package i18n;
import java.util.Locale;
import java.util.ResourceBundle;
public class i18ntext {
public static void main(String[] args) {
//new i18ntext().test();
new i18ntext().test1();
}
public void test() {
//获取系统默认的语言,国家信息
Locale aDefault = Locale.getDefault();
System.out.println(aDefault);//zh_CN
//查看全部语言
for (Locale availableLocale : Locale.getAvailableLocales()) {
System.out.println(availableLocale);
}
//获取中文,中文的常量的Locale 对象
System.out.println(Locale.CHINA);//zh_CN
// 获取英文,美国的常量的Locale 对象
System.out.println(Locale.US);//en_US
}
public void test1(){
//获取中文Locale对象
Locale locale = Locale.CHINA;
//根据上面的Locale对象,加载不同的配置文件
ResourceBundle bundle = ResourceBundle.getBundle("i18n", locale);
System.out.println(bundle.getString("username"));
System.out.println(bundle.getString("password"));
}
}
servlet下的资源包配置
结果:
如果出现中文乱码解决方案:
右击文件---设置---以下全部改成utf-8即可
注意配置文件必须放在src下面,否则报Can't find bundle for base name XXXX, locale zh_CN错误