Struts2国际化实例(点击按钮实现切换中英文效果)----接上文

哈喽,小萌新有来爆料了!这次爆的是中英文切换例子,也就是我们经常说的国际化

首先来说一下是国际化

不同的国家有不同的语言,中文虽然广为流传,但是毕竟有不是中国人,看不懂中文,那该怎么办呢?简单啊,我再页面上设计一下切换语言不就完啦?所以这就是国际化。

国际化文件的命名规则:

          1、基本名.properties 如:message.properties

          2、基本名_语言编码_国家编码.properties 如:message_zh_CN.properties, message_en_US.properties 其中语言编码和国家编码是固定的,可以在JDK中Locale类的常量中找到。

    Java中已经实现了国际化功能,struts2中只是对该功能进行了整合,以方便我们的使用。

    Struts2中使用到国际化的地方有: 1、jsp页面的国际化; 2、Action信息国际化; 3、转换错误信息的国际化; 4、校验错误信息的国际化;

    Struts2国际化文件分类: 1、全局范围国际化文件 2、包范围国际化文件 3、Action类范围国际化文件。

利用资源文件的切换加载,来实现国际化的效果。什么是资源文件?就是以.properties结尾的文件。为了实现程序的国际化,必须先提供程序所需要的资源文件。资源文件的内容基本是key-value对,其中key是程序使用的部分,而value是程序的显示部分。下面我们来进入主题~~(你们不敢相信我其实是穿着汉服在这里坐着写文章de,QAQ......)

整体结构问题

悄咪咪的说,字母不要写错,jar包的位置不要放错,,不然会出现不明错误,,,深有体会的博主,555......

1、新建项目Struts2work

2、在src下新建资源文件

在File nme那里写上资源文件的名字就好了。

global_fr.properties(英文)

代码如下:

global.name = Name
global.age = Age
global.submit = Submit
global.heading = Select Locale
global.success =Successfully authenticated

global_zh.properties(中文)

代码如下:

global.name = \u59D3\u540D
global.age = \u5E74\u9F84
global.submit = \u63D0\u4EA4
global.heading = \u9009\u62E9\u4E00\u79CD\u8BED\u8A00
global.success =\u6210\u529F

3.新建jsp页面

index.jsp

    国际化简称i18n,其来源是英文单词 internationalization的首末字符i 和n。18为中间的字符数。 随着全球经济的一体化,软件开发者应该开发出支持多国语言、国际化的Web应用。对于Web应用来说,同样的页面在不同的语言环境下需要显示不同的效果。

<%@ page language="java" contentType="text/html; charset=UTF-8"
   pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Employee Form with Multilingual Support</title>
</head>

<body>
  <h1><s:text name="global.heading"/></h1>

    
   <s:url id="indexZH" namespace="/" action="locale" >
      <s:param name="request_locale" >zh</s:param>
   </s:url>
   <s:url id="indexFR" namespace="/" action="locale" >
      <s:param name="request_locale" >fr</s:param>
   </s:url>
   <button><s:a href="%{indexZH}" >中文</s:a></button>
   <button><s:a href="%{indexFR}" >英文</s:a></button>

   <s:form action="empinfo" method="post" namespace="/">
      <s:textfield name="name" key="global.name" size="20" />
      <s:textfield name="age" key="global.age" size="20" />
      <s:submit name="submit" key="global.submit" />
   </s:form>

</body>
</html>

success.jsp(登录成功则显示成功)

<%@ page language="java" contentType="text/html; charset=UTF-8"
   pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Success</title>
</head>
<body>
   <s:property value="getText('global.success')" />
</body>
</html>

 

4.引入jar包

5.在src下新建Employee.java和Locale.java文件

Employee.java

package com.oumyye.action;
import com.opensymphony.xwork2.ActionSupport;

public class Employee extends ActionSupport{
   private String name;
   private int age;
   
   public String execute() 
   {
       return SUCCESS;
   }
   
   public String getName() {
       return name;
   }
   public void setName(String name) {
       this.name = name;
   }
   public int getAge() {
       return age;
   }
   public void setAge(int age) {
       this.age = age;
   }
}

Locale.java

package com.oumyye.action;

import com.opensymphony.xwork2.ActionSupport;

public class Locale extends ActionSupport{
   public String execute() 
   {
       return SUCCESS;
   }
}

6.配置文件web.xml和struts.xml

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
	xmlns="http://java.sun.com/xml/ns/javaee" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  
  <filter>
    <filter-name>struts2</filter-name>
    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
  </filter>
  <filter-mapping>
     <filter-name>struts2</filter-name>
     <url-pattern>/*</url-pattern>
  </filter-mapping>

</web-app>

struts.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
   "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
   "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
   <constant name="struts.devMode" value="true" />
   <!-- 扫描资源目录下以global开头的文件 -->
   <constant name="struts.custom.i18n.resources" value="global" />

   <package name="helloworld" extends="struts-default" namespace="/">
      <action name="empinfo" 
         class="com.oumyye.action.Employee"
         method="execute">
         <result name="input">/index.jsp</result>
         <result name="success">/Success.jsp</result>
      </action>
      
      <action name="locale" 
         class="com.oumyye.action.Locale"
         method="execute">
         <result name="success">/index.jsp</result>
      </action>
   </package>
</struts>

7.运行结果

图1:(点击按钮切换英文)

图2:

图3:

其实这种方式很简便,毕竟只用切换资源文件就可以解决语言问题。好了,今天的代码结束了,明天见哦~~~

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值