先看图图;

图1:

图2:

图3:

图4:

首先下载Properties Editor插件,该插件是支持中文的资源文件编辑器;MyEclipse 10.6 以上不用安装该插件,使用自带资源文件编辑器即可;下载后解压,将features和plugins两个目录复制到MyEclipse安装目录,比如MyEclipse\MyEclipse 10\dropins,下,即可;

二 编写测试JSP页面

<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%><html><head><title><s:text name = "registerPage" /></title><script type="text/javascript">function requestLocale(){localeForm.submit();}</script></head><body><s:set name="locale" value="#session['WW_TRANS_I18N_LOCALE']" /><form name="localeForm" action="<s:url/>" method="post"><select name="request_locale" οnchange="requestLocale()"><option value="zh_CN"  >简体中文</option><option value="en_US" <s:if test="#locale.language == 'en'">selected="selected"</s:if>  >美式英语
</option><option value="ar_IL" <s:if test="#locale.language == 'ar'">selected="selected"</s:if>  >日语</option></select></form>    <s:form action = "register" name="form" ><s:textfield name="username" key="username"  /> <s:textfield name="password" key="password" /><s:textfield name="age" key="age" /><s:textfield name="birthday" key="birthday" /><s:submit  key="register" /></s:form><p>XXX </p><p>XXX </p><p>XXX </p><p>XXX </p><s:text name="teqtest" /><p>XXX </p><p>XXX </p><p>XXX </p><p>XXX </p><s:text name="testkey" /></body> </html>

三 建立资源文件

资源文件放在如下位置:WEB-INF的classes目录下,

新建文件夹文件夹i18n,放入如下图资源文件;

四 编辑资源文件

在MyEclipse中打开 globalResource_zh_CN.properties, 这是中文资源文件,新建key名称为testkey,值为一段中文;

打开globalResource_en_US.properties,这是英文资源文件,新建key名称为testkey,值为一段英文;

打开globalResource.properties,如上图4,新建key名称为testkey,值为一段日文;

五 在Struts2的配置文件中添加如下一段:

!-- 语言切换 -->
  <action name="*_jsp">
     <result>/xxxx/i18n/{1}.jsp</result>
  </action>

xxxx是项目中一个放页面的文件夹,为了清楚,新建一个i18n文件夹,测试JSP放在这里;

因为Struts2的多语言切换是通过叫i18n的内建拦截器实现的,所以起个名字叫i18n,好辨认;

六 在浏览器中查看结果

在浏览器中输入:http://localhost:8080/dddd/xxxx/i18n/register_jsp.action

在页面上用下拉列表切换语言,其效果分别如图1、图2、图3;实现了页面内容中中、英、日三种语种的切换;

中间输出的一段是土耳其文,用于测试,顺带搞晕大家;

七 关于Struts2的国际化支持

Struts2的国际化支持是用资源文件实现的;本身机制还是比较复杂;资源文件命名,资源文件查找顺序,等,都有一定规则;内建i18n拦截器支持国际化,简化编程。按我上述过程可操作成功,具体细节可参阅Struts2相关资料。

使用了i18n后,大致只有三个内容,即可实现国际化:编辑资源文件,编写前台页面,配置action。如上述二的代码,页面中必须要提供正确的request_locale请求参数。

找不到资源文件,或相应的key的内容,会在页面上直接输出key的名字。

Java Web的Struts2的多语种网站的多语言切换实例相关推荐

  1. Java Web项目性能测试 - JMeter测试网站吞吐量、反应时间百分比、流量

    Java Web项目性能测试 - JMeter测试网站吞吐量.反应时间百分比.流量 为了衡量.调整.完成Java Web项目的性能指标,满足客户.用户对性能的要求,保证项目上线后能正常运行,以及了解项 ...

  2. 项目总结——Java web之实现当当网网站

    Java web之实现当当网网站 运行环境:JDK1.8+tomcat8.4+MySQL5+servlet技术 源码结构 CategoryDAO.java package com.tarena.dao ...

  3. Portal-Basic Java Web应用开发框架V3.0正式发布(源码、实例及文档)

    Portal-Basic Java Web应用开发框架(简称 Portal-Basic)是一套功能完备的高性能Full-Stack Web应用开发框架,内置稳定高效的MVC基础架构和DAO框架(已内置 ...

  4. java web 伪静态_【Java Web】使用URLRewrite实现网站伪静态

    大部分搜索引擎都会优先考虑收录静态的HTML页面,而不是动态的*.jsp.*.php页面.但实际上绝大部分网站都是动态的,不可能全部是静态的HTML页面,因此互联网上大部分网站都会考虑伪静态--就是将 ...

  5. java web 项目伪静态_【Java Web】使用URLRewrite实现网站伪静态

    大部分搜索引擎都会优先考虑收录静态的HTML页面,而不是动态的*.jsp.*.php页面.但实际上绝大部分网站都是动态的,不可能全部是静态的HTML页面,因此互联网上大部分网站都会考虑伪静态--就是将 ...

  6. Java Web实验程序设计——图书借阅网站的实现——图书信息

    预 习 报 告 实验题目:图书借阅网站的实现--图书信息 预习内容: Servlet的概述 Servlet 是使用Java 语言编写的运行在服务器端的程序.狭义的 Servlet 是指Java 语言实 ...

  7. 基于java web技术的班级同学录网站-计算机毕业设计

    本次课题完成一个校班级同学录网站,可以对学生用户进行分类,添加,删除,修改等,通过较丰富的功能将 Web的技术特点体现出来,使之有效地存储和管理登录网站的用户的信息,赋予管理员特定的权限.通过提供完善 ...

  8. java web常用且实用的网站收集

    为了日常开发的方便,分享一些平时收藏且实用性比较高的的网站- 一.配色方面: colorhunt:https://colorhunt.co/ (这个网站给我们提供了几十种的配色方案,鼠标移动到对应的颜 ...

  9. (27) java web的struts2框架的使用-基于表单的多文件上传

    和单个文件上传配置都是一样的,只是在action中接受参数时候,接受的是数组,不再是单个的文件. 一,action的实现: public class MutableFilesUpload extend ...

最新文章

  1. 服务器系统防火墙例外,Windows Server 2012设置端口例外、防火墙设置方法
  2. asl不成功怎么算_那些减肥成功还不反弹的人是怎么做到的?
  3. 利用MySQL语句批量替换指定wordpress文章中的图片路径
  4. 软件工程教学博客 (备份)
  5. python正则表达式元字符用法_正则表达式-常用元字符的基本使用
  6. 数据结构期末复习之平衡二叉树
  7. U-mail邮件系统对故障的紧急措施有哪些?
  8. java普通工程打war包_普通java工程(Java Project)打jar包
  9. 超高频手持机怎样选择才适合工作呢
  10. 互联网从此没有 BAT
  11. matlab各相关系数的计算,matlab 相关系数的计算
  12. Gwallet小百科 | 2019年区块链游戏行业发展现状分析
  13. leetcode:448. Find All Numbers Disappeared in an Array找到所有数组中消失的数字(C++)
  14. Your Command Line Tools are too outdated
  15. Simulink仿真入门到精通(十七) Simulink代码生成技术详解
  16. gmm聚类python_GMM-实现聚类的代码示例
  17. 【直击DTCC】宝存CEO阳学仕:闪存技术已经无法阻挡
  18. scala利用akka框架封装数据库操作api微服项目
  19. 【日志篇】java日志的桥接器和适配器和异步日志
  20. Material Design设计之【色彩】实践

热门文章

  1. 管理springmvc组件——前端控制器、控制器映射器和适配器、视图解析器、文件上传的、拦截器||消息转化
  2. 前后端交互概述与URL地址格式
  3. 预处理命令 || 宏定义 || 带参数的宏定义
  4. Python 【抖音】短视频的自动上传与发布实例演示,同时支持快手、哔哩哔哩、小红书、微视、西瓜视频、微信视频号等平台的视频自动化同步发布
  5. Linux 技术篇-查看cpu核心数,grep常用信息筛选语法使用演示
  6. Python 知识点笔记:走进面向对象
  7. 一个简单的因数分解java代码
  8. # C# 学习笔记(4) 类
  9. linspace--创建线性等分向量
  10. 什么函数不能声明为虚函数