struts2的国际化(即实现中英文切换)实例
今天学习了国际化实例,也就是实现中文和英文的切换。
注:本博客有部分代码参考阿木侠的博客内容。
1、首先实现国际化对我们的项目要求是搭建好Struts2框架
这个在这里不多说,我写的有一篇文章有详细介绍,链接如下:
https://blog.****.net/weixin_42322648/article/details/83547417
2、我们要编写jsp页面在这个jsp页面上测试结果
下面附上创建的login.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>
<tr>
<td><s:text name="username" /></td>
<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>
这里有一个i18n,他就是Internationalization(国际化)的英文缩写,为什么是i18n呢?
因为Internationalization去掉头尾的i和n刚好还剩下18个字符。
3、然后我们编写一个Action
这里我创建的action名字为LoginAction,这里代码如下,我没有加别的验证信息,为了让他直接能实现中英文切换。代码如下:
package com.hnpi.action;
import com.opensymphony.xwork2.ActionSupport;
public class LoginAction extends ActionSupport{
public String execute(){
return "success";
}
}
4、下面我们就需要创建资源文件了
资源文件的内容基本是key-value对,其中key是程序使用的部分,而value是程序的显示部分。
这里我创建的资源文件名称为:globalMessages_zh_CN.properties(中文):
globalMessages_en_US.properties(英文):
这里注意文件的格式为.properties。不要建错了。
5、最后我们就要对Struts.xml进行配置了
这个是实现中英文切换的一个核心,这里面错了就会导致切换不了。代码如下:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<constant name="struts.costom.i18n.resources" value="globalMessages"/>
<package name="default" extends="struts-default" namespace="/">
<action name="login" class="com.hnpi.action.LoginAction">
<result name="success">/login.jsp</result>
</action>
</package>
</struts>
然后我们就可以部署Tomcat进行运行了:
以上就是我的国际化例子的详细介绍。有错误的地方还请各位多多指正。