struts2的国际化项目

国际化项目实现网站整体中英文切换:

要求:

  1. Struts2框架搭配环境成功
  2. 实现程序的国际化,提供程序所需要的资源文件。
  3. 资源文件的内容基本是key-value对,其中key是程序使用的部分,而value是程序的显示部分。
    这是整个项目的布局(图下):
    i18n是项目名称:其来源是英文单词 internationalization的首末字符i 和n。18为中间的字符数。
    国际化文件的命名规则:
    1、基本名.properties 如:message.properties
    2、基本名_语言编码_国家编码.properties 如:message_zh_CN.properties, message_en_US.properties 其中语言编码和国家编码是固定的,可以在JDK中Locale类的常量中找到。
    在这里插入图片描述

创建资源文件(全局范围国际化文件:):

编写一个globalMessages_zh_CN.properties和globalMessages_en_US.properties放在src下。

globalMessages_zh_CN.properties(中文)
在这里插入图片描述
globalMessages_en_US.properties(英文)
在这里插入图片描述

编写jsp页面,在jsp上测试英文切换效果:

在这里插入图片描述

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    <title>中英文切换效果</title>
  </head>
  <body>
  <s:i18n name="globalMessages">
  	<s:text name="check"></s:text>:
  	<a href="login.action?request_locale=zh_CN"><s:text name="chinese"></s:text></a>  
	<a href="login.action?request_locale=en_US"><s:text name="english"></s:text></a>  
	<br/>
	<h3><s:text name="title"></s:text></h3>
	<s:form action="login" method="post">
			<table width="344" height="300">
				<tr>
					<td> </td>
				</tr>
				<tr>
					<td><s:text name="username" />
					<td><s:textfield name="name" />
					</td>
				</tr>
				<tr>
					<td><s:text name="password" />
					</td>
					<td><s:password name="password" />
					</td>
				</tr>
				<tr>
					<td> </td>
					<td><s:submit value="%{getText('login')}" /></td>
				</tr>
			</table>
		</s:form>
	</s:i18n>
  </body>
</html>

编写一个action类

创建一个action类,本项目是以(com.hnpi.action)为准。
在这里插入图片描述

注意:

配置拦截器,在进入action之前进行语言选择的处理
这里创建个ChangeLanguage.java
在这里插入图片描述
在struts2中,提供了一个i18n的拦截器,这个拦截器在执行Action方法之前,自动查找请求中名为request_locale的参数,拦截后转换为Locale对象,放置在用户session的名为“WW_TRANS_I18N_LOCALE”的属性。I18n在程序运行时会被自动加载,我们可以利用这些来设置允许用户自动选择网页的语言。

在struts.xml中配置拦截器和国际化的资源:

在这里插入图片描述
最后效果为:
设置的默认为中文。
在这里插入图片描述
点击英文:
在这里插入图片描述
这样就完成了国际化项目。
在不同的语言的切换只需要提供不同国家语言的资源文件即可。


项目中点击login后会没有效果,我会尽快完善,如果觉得项目中存在问题,随时欢迎来提醒,我会立即改善代码。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值