由于工作原因需要做一个支持国际化的项目,之前只简单了解过原理,却没有实际运用过,今天需要做一个支持中文和日文两国语言的网站。用jstl做更方便一些,但网上的教程能不能再烂一些,复制也就罢了还缺头少尾的,而且实现步骤繁琐,最后我会贴出我的代码。
首先我新建了语言包:
resource_ja-JP.properties
resource_zh-CN.properties
我想大多数人都是跟我一样这样做,(ja-JP)(zh-CN)是本地浏览器语言编码为后缀,但是问题来了
都知道(ja-JP)(zh-CN)等是本地浏览器设置的语言编码,错是没错,但我发现日语的编码不止这一中,有:
ja_JP
ja_JP.eucjp
ja_JP.sjis
ja_JP.ujis
ja_JP.utf8
japanese
japanese.euc
部分编码如图:
这么多种,而且用chrome浏览器的的用户也可能发现中文也分很多种:如:
分别是:zh 、 zh-CN 、 zh-TW 等,那我们的资源包起名的时候后缀该怎么命名呢?总不能每个编码都新建个后缀吧,网上搜了下相关内容没什么进展。
我本想只做其中一种,分别命名为:resource_ja.properties和resource_zh.properties,没想到居然兼容了上面全部的语言编码,活见鬼!
页面运用代码也贴出来:
<%@ page contentType="text/html; charset=utf-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<fmt:setBundle basename="resource"/>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title><fmt:message key="Home"/></title>
</head>
<body>
${header['accept-language']}
</body>
</html>
测试简洁完美!
- 大小: 58.2 KB
- 大小: 28.3 KB
- 大小: 3.6 KB
分享到:
相关推荐
4. **国际化和本地化支持**:JSTL提供`fmt`标签库来支持多语言环境,如`<fmt:message>`用于获取消息资源,`<fmt:formatNumber>`用于格式化数字等,这些标签可以帮助开发者轻松实现应用的国际化。 5. **数据库操作**...
《JSTL in Action》这本书对于初学者和有经验的开发者来说都是宝贵的资源,它不仅解释了JSTL的基本概念,还提供了丰富的实战案例,帮助读者深入理解和掌握这个强大的工具。通过阅读这本书,你将能够熟练运用JSTL解决...
2. **Format标签库**:支持日期、数字的格式化和国际化,例如`<fmt:formatDate>`和`<fmt:message>`。 3. **XML标签库**:处理XML文档,如解析、操作XML数据,例如`<x:parse>`和`<x:out>`。 4. **Function标签库**...
JSTL的fmt库提供了`<fmt:bundle>`、`<fmt:message>`和`<fmt:formatDate>`等标签,帮助开发者实现页面的国际化和本地化功能。 **6. 实战应用:** 在实际项目中,JSTL常用于构建动态导航菜单、显示数据列表、处理表单...
JSTL是Java社区为了简化JavaServer Pages(JSP)开发而推出的一个开源标签库,它提供了一系列预定义的标签,用于处理常见的任务,如迭代、条件判断、国际化、XML处理等,从而降低了对Java脚本的依赖,提高了代码的...
JSTL的核心是它的一组标签,这些标签涵盖了常见的页面控制逻辑,如迭代、条件判断、国际化、XML处理等,旨在减少在JSP页面中使用Java脚本的频率,从而提高代码的可维护性和可移植性。 **二、JSTL的主要组件** JSTL...
2. **国际化 (I18N)**:通过 `<fmt:bundle>` 和 `<fmt:message>` 标签支持多语言环境。 3. **SQL 库 (SQL)**:提供与数据库交互的能力,如 `<sql:update>`、`<sql:query>` 等。 4. **XML 库 (XML)**:用于处理 XML...
1. **Core标签库**:提供了控制流程(如循环、跳转)、条件判断(如if、choose)、国际化支持等功能。 2. **XML标签库**:用于XML文档的处理,包括解析、查询、转换等操作。 3. **JDBC标签库**:简化了数据库操作,...
2. **I18N & Format**: 处理国际化和格式化任务。 3. **SQL**: 用于执行数据库操作。 4. **XML**: 处理XML文档。 ### 二、JSTL导入与配置 在JSP页面中使用JSTL前,需要导入相应的库并配置`web.xml`。首先,在`WEB-...
3. **i18n**: 国际化支持,用于处理不同语言环境下的文本资源,便于创建多语言网站。 4. **sql**: 支持数据库查询和操作,可以方便地在JSP页面中执行SQL语句,并处理查询结果。 5. **core**: 核心库,包含许多基本...
2. **I18N & Format(国际化与格式化库)**:支持国际化和日期/数字的格式化。 3. **XML(XML库)**:用于处理XML文档,包括解析、操作和转换XML数据。 4. **Functions(函数库)**:包含了一些常用的辅助函数,...
JSTL是JavaServer Pages标准标签库,它提供了一组用于处理常见任务的JSP标签,如迭代、条件语句、XML处理、国际化和URL操作等。JSTL的使用极大地提高了JSP页面的可读性和可维护性,减少了在页面中编写大量Java脚本的...
这两个标签使得输出的数据更加符合国际化和本地化的需要。 最后,我们讨论**FN标签库**,即EL(Expression Language)的函数库。这些函数提供了一些额外的字符串处理、数组操作等实用功能。例如,`<fn:length>`可以...
- `<fmt:message>`:用于国际化(i18n)和本地化(l10n),获取资源文件中的消息。 **3. JSTL fn标签库**: - 提供了一系列的实用函数,如字符串操作、数组操作、集合操作等,如`<fn:length>`计算长度,`...
这个库提供了国际化和本地化支持,以及数据格式化的功能。 - `<fmt:formatDate>`:格式化日期。 - `<fmt:message>`:获取资源文件中的消息。 - `<fmt:setBundle>`:设置当前的资源包。 3. **XML处理标签库(XML...
在短信项目中,JSTL可能被用来执行常见的任务,如控制流程(c:if、c:choose)、迭代(c:forEach)、国际化(fmt:formatNumber、fmt:message)等。例如,`<c:out>`标签可以安全地输出变量值,避免XSS攻击;`<c:set>`...