struts2 国际化语言转换
学习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 国际化语言转换的更多相关文章
- 菜鸟学SSH(三)——Struts2国际化自动检测浏览器语言版
前几天发了一篇Struts国际化的博客——<菜鸟学习SSH(二)——Struts2国际化手动切换版>,有网友提了一个意见,见下图: 于是就有了下面修改的版本: web.xml <?x ...
- struts2国际化
struts2国际化 1:什么是国际化? 国际化(internationalization)是设计和制造容易适应不同区域要求的产品的一种方式.它要求从产品中抽离所有的与语言,国家/地区和文化相关的元素 ...
- 【转】Struts2国际化
原文章:http://www.cnblogs.com/hellokitty1/p/5083663.html 简单理解 国际化简称i18n,其来源是英文单词 internationalizati ...
- (六)Struts2 国际化
所有的学习我们必须先搭建好Struts2的环境(1.导入对应的jar包,2.web.xml,3.struts.xml) 第一节:国际化简介 国际化(Internationlization),通俗地讲, ...
- struts2国际化全例 错误解决
在struts2中需要做国际化的有: jsp页面的国际化,action错误信息的国际化,转换错误信息的国际化,校验错误信息的国际化 在之前的例子中已经做过和国际化相关的例子了,在struts.xml中 ...
- Struts2国际化-getText()方法
转自https://blog.csdn.net/qq_43560838/article/details/83747604 一:简单理解 国际化简称i18n,其来源是英文单词 international ...
- struts2系列(四):struts2国际化的多种方式
一.struts2国际化原理 根据不同的Locale读取不同的文本. 例如有两个资源文件: 第一个:message_zh_CN.properties 第二个:message_en_US.propert ...
- struts2学习(10)struts2国际化
一.国际化简介: 二.struts2国际化设置: struts.xml: <?xml version="1.0" encoding="UTF-8" ?&g ...
- [JavaWeb基础] 016.Struts2 国际化配置
如果一个软件想要让其受众是全球或者是几个国家的人,那么这个软件就需要支持多种语言,那么我们就需要软件的国际化去对一些文字信息进行国际化处理.web也一样,当外国人打开我们的网站,要是看到满屏幕的中文, ...
随机推荐
- Kettle入门及性能优化FAQ
1.安装 配置Java环境 Java环境配置问题 java_home:D:\Program Files\Java\jdk1.7.0_25(安装jdk路径) classpath:.;%java_home ...
- noip提高组模拟赛(QBXT)T2
T2count题解 [ 问题描述]: 小 A 是一名热衷于优化各种算法的 OIER,有一天他给了你一个随机生成的 1~n 的排列, 并定 义区间[l,r]的价值为: \[ \huge C_{l,r}= ...
- leetcode-766-Toeplitz Matrix(每一条对角线元素的比较)
题目描述: A matrix is Toeplitz if every diagonal from top-left to bottom-right has the same element. Now ...
- weex 编译vue成js
cd 项目 1.开发 npm run web 开发过程中可以直接使用浏览器运行 npm run ios 2.打包 npm run build 会在 dist 文件夹 中生成js文件, 即可拖入ios ...
- Kafka:Consumer
1.预览 1.1 消费者组(Consumer Group) 一个consumer group可能有若干个consumer实例 同一个group里面,topic的每条信息只能被发送到group下的一个c ...
- Tr A(矩阵快速幂)
A为一个方阵,则Tr A表示A的迹(就是主对角线上各项的和),现要求Tr(A^k)%9973. Input 数据的第一行是一个T,表示有T组数据. 每组数据的第一行有n(2 <= n < ...
- Ubuntu定时任务设置
设置很简单,但如果误入歧途,会耽误很多时间 步骤如下: 1. 以root执行:vi /etc/crontab 2. 在文件最后添加cron配置(每天凌晨四点执行,并将日志输出到/data/cron.l ...
- grunt 实例构建(四)
相关插件的引用: grunt-usemin 对页面的操作 grunt-contrib-cssmin 压缩css load-grunt-tasks 瘦身gruntfile grunt-rev给md5 ...
- ORC Files
ORC 全称是Optimized Row Columnar,意思是优化的RC file,优化行列式. ORC 文件格式提供了一个很高效的方式来存储hive数据.它旨在克服其他hive文件格式的限制.当 ...
- git多账户使用
由于公司和个人分别有git账号,而git客户端在默认情况下是只能使用一个账号,如果需要使用多个账号,需要额外的设置. 1. 不使用全局设置,使用如下清除全局设置 git config --global ...