学习struts2,了解了使用struts2的配置文件可以走向国际化,实现页面的语言转换。我已中文和英文为例,简单的实现登录页面的国际化

废话不多说,上代码

一,login.jsp页面

使用s标签<s:text name="QQcode" />对需要的转化的字进行变量
文字为两个a标签。点击进入后台实现语言的转化
<%@ 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>My JSP 'login.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<link rel="stylesheet" href="css/style_public.css" />
<link rel="stylesheet" href="css/style_login.css" />
<script type="text/javascript" src="js/jquery-1.8.3.js"></script>
</head> <body>
ta<!--头部-->
<header>
<div class="btn"><a href="login.html"><s:text name="login" /></a>/
<a href="registered.html"><s:text name="register" /></a></div>
</header>
<!--中间内容(主题内容)-->
<div class="main">
<div class="box">
<a href="${pageContext.request.contextPath }/chang_change.action?lang=zh&local=CN" style="color: red">中文</a>
<a href="${pageContext.request.contextPath }/chang_change.action?lang=en&local=US" style="color: red">English</a>
<p><a href="index.html"><s:text name="comeback" /></a></p>
<form id="forml" action="user_loginString.action" method="post"> <div class="content">
<p><s:text name="QQcode" /></p>
<input type="text" placeholder="请输入QQ号" id="input1" name="um.userid" />
<p><s:text name="loginuserpwd" /></p>
<input type="password" placeholder="请输入密码" id="input2" name="um.userpwd"/>
<div style="margin-top: 20px;color:red;" ><input id="remebers" type="checkbox" name="remenber" value="1"/>
<span ><s:text name="remoment" /></span></div>
<div class="btnss" onclick="sub()"><s:text name="login" /></div>
</div>
</form>
<span id="sp1"></span>
<span id="sp2"></span>
</div> </div>
<!--尾部-->
<footer>
<p style="margin-top: 0px;">网站链接:你猜网 www.xxxxxxxxx.com</p>
</footer>
</body>
</html>

二,ChangeLanguage类,放在action包下面

存入session作用域的 "WW_TRANS_I18N_LOCALE" 不能写错

package com.direct.action;

import java.util.Locale;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport; public class ChangeLanguage extends ActionSupport{ private String local;
private String lang; public String change(){
Locale le = new Locale(lang, local);
// 存入session作用域
ServletActionContext.getRequest().getSession().setAttribute("WW_TRANS_I18N_LOCALE", le);
ServletActionContext.getContext().setLocale(le); // 启用
return "change";
} public String getLocal() {
return local;
}
public void setLocal(String local) {
this.local = local;
}
public String getLang() {
return lang;
}
public void setLang(String lang) {
this.lang = lang;
} }

三,struts2.xml

<constant name="struts.custom.i18n.resources" value="Myresource"></constant>
一定需要,是一个常量,设置国际化
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<constant name="struts.i18n.encoding" value="utf-8"></constant>
<constant name="struts.custom.i18n.resources" value="Myresource"></constant>
<package name="us" extends="struts-default,json-default" namespace="/"> <action name="chang_*" class="com.direct.action.ChangeLanguage" method="{1}">
<result name="change">/login.jsp</result>
</action> </package> </struts>

四,Myresource_en_US.properties  和 Myresource_zh_CN.properties 两个放在src下的配置文件(与struts2.xml 同一位置),命名规则必须这样,不可改

Myresource_en_US.properties

login=login
register=register
comeback=comeback
loginuserpwd=loginuserpwd
remoment=remoment
QQcode=QQcode
loginbutton=login

Myresource_zh_CN.properties

loginusername=\u767B\u5F55\u540D
loginuserpwd=\u5BC6\u7801
remoment=\u8BB0\u4F4F\u7528\u6237\u540D\u548C\u5BC6\u7801
login=\u767B\u5F55
register=\u6CE8\u518C
comeback=\u56DE\u5230\u9996\u9875
QQcode=QQ\u53F7

五,最后的开启项目,在浏览器中访问了。直接访问login.jsp页面就可以。

点击两个a标签时,就会吧页面的相应字改变语言。很easy把

struts2 国际化语言转换的更多相关文章

  1. 菜鸟学SSH(三)——Struts2国际化自动检测浏览器语言版

    前几天发了一篇Struts国际化的博客——<菜鸟学习SSH(二)——Struts2国际化手动切换版>,有网友提了一个意见,见下图: 于是就有了下面修改的版本: web.xml <?x ...

  2. struts2国际化

    struts2国际化 1:什么是国际化? 国际化(internationalization)是设计和制造容易适应不同区域要求的产品的一种方式.它要求从产品中抽离所有的与语言,国家/地区和文化相关的元素 ...

  3. 【转】Struts2国际化

    原文章:http://www.cnblogs.com/hellokitty1/p/5083663.html 简单理解     国际化简称i18n,其来源是英文单词 internationalizati ...

  4. (六)Struts2 国际化

    所有的学习我们必须先搭建好Struts2的环境(1.导入对应的jar包,2.web.xml,3.struts.xml) 第一节:国际化简介 国际化(Internationlization),通俗地讲, ...

  5. struts2国际化全例 错误解决

    在struts2中需要做国际化的有: jsp页面的国际化,action错误信息的国际化,转换错误信息的国际化,校验错误信息的国际化 在之前的例子中已经做过和国际化相关的例子了,在struts.xml中 ...

  6. Struts2国际化-getText()方法

    转自https://blog.csdn.net/qq_43560838/article/details/83747604 一:简单理解 国际化简称i18n,其来源是英文单词 international ...

  7. struts2系列(四):struts2国际化的多种方式

    一.struts2国际化原理 根据不同的Locale读取不同的文本. 例如有两个资源文件: 第一个:message_zh_CN.properties 第二个:message_en_US.propert ...

  8. struts2学习(10)struts2国际化

    一.国际化简介: 二.struts2国际化设置: struts.xml: <?xml version="1.0" encoding="UTF-8" ?&g ...

  9. [JavaWeb基础] 016.Struts2 国际化配置

    如果一个软件想要让其受众是全球或者是几个国家的人,那么这个软件就需要支持多种语言,那么我们就需要软件的国际化去对一些文字信息进行国际化处理.web也一样,当外国人打开我们的网站,要是看到满屏幕的中文, ...

随机推荐

  1. svn提交新文件夹同时不需要更新全部上级目录

    关于svn的指定目录指定位置更新:当在提交了新建的目录后可以使用 a)  在需要更新的上级目录上单击右键 在延伸菜单中选择 b)  弹出对话框中选择,check repository c)  新添加的 ...

  2. Angular 2 中的 ViewChild 和 ViewChildren

    https://segmentfault.com/a/1190000008695459 ViewChild ViewChild 是属性装饰器,用来从模板视图中获取匹配的元素.视图查询在 ngAfter ...

  3. Lecture notes of Mathematical analysis

    Lecture notes of Mathematical analysis Preliminary theory Teaching purpose: Mathematical analysis is ...

  4. 题目1018:统计同成绩学生人数(hash简单应用)

    问题来源 http://ac.jobdu.com/problem.php?pid=1018 问题描述 给你n位同学的成绩,问获得某一成绩的学生有多少位. 问题分析 初见此题,有人会想到先将所有成绩存入 ...

  5. ReactNative之坑:停在gradle一直出点

    问题: 初次安装好React Native 环境后,运行项目,会停留在下载 gradle 的界面一直出点 原因: 下载gradle一直不成功 解决方案: 可以根据提示的版本信息,手动下载,放在目录中, ...

  6. Sklearn,TensorFlow,keras模型保存与读取

    一.sklearn模型保存与读取 1.保存 from sklearn.externals import joblib from sklearn import svm X = [[0, 0], [1, ...

  7. 小众软件:windows 系统下 exe 文件打包软件

    1. Enigma Virtual Box 单文件打包软件 官网:EnigmaProtection 2. 安装包打包软件 官网:Inno Setup 参考文献: [1] 单文件制作工具Enigma V ...

  8. c# 水晶报表使用说明

    水晶报表介绍 水晶报表是 vs 早期版本自带的一款报表控件.vs2017不自带水晶报表,需要自行安装.虽然水晶报表是收费控件,但是微软已经付过钱了,所以vs自带的水晶报表可以直接使用. 如果项目是 . ...

  9. @Transcational特性

    捕获RuntimeException 捕获Error 并不捕获Checked Exception 在方法中使用@Transcational注解时候,通过throw new Exception(),在发 ...

  10. Message Queue基本使用说明

    一.安装Message Queue: 在Win7之前,控制面板,添加删除组件(Windows Message Queue). Win7~Win8:控制面板,程序和功能,启用或关闭Windows功能(找 ...