zoukankan      html  css  js  c++  java
  • Struts2 国际化

    一、简介

    国际化(i18n)是规划和实施的产品和服务,使他们能很容易地适应特定的本地语言和文化的过程中,这个过程被称为本地化。国际化的过程有时也被称为翻译或本地化启用。国际化是缩写i18n,因为我和两端用n字打头,并有18个字符之间的第i个和最后n。

    二、eclipse搭建Struts

     1.新建一个“动态java项目”

    2.将Struts2所需要的jar包导入到工程目录“webcontent—>web-inf”下的“lib”文件夹,系统会自用的添加到构建目录。

    3.配置web.xml文件

        <!-- strut2的配置 -->
        <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>

    4.新建包和类用于测试。

    public class UserAction {
    
        public String login() {
            
            return "success";
        }
    }

    5.新建xml文件,取名为Struts.xml,并配置package

    <?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>
        <package name="USER" extends="struts-default" namespace="/">
            <action name="login" class="com.hgd.action.UserAction" method="login">
                <result name="success">/main.jsp</result>
            </action>
        </package>
    
    </struts>    

    6.新建index.jsp和main.jsp,在index.jsp中添加一个测试标签。

    <a href="login.action">login</a>

    7.tomcat跑一下,看看测试结果,点击login标签能够跳转到main.jsp表面Struts2的配置正确,可以开始下一步。

    三、国际化

    1.在src目录下添加两个资源文件,命名方式很重要的。格式:baseName_language_country.properties。比如,实现中英文切换我们要添加 resource_zh_CN.properties 和 resource_en_US.properties。然后将各个key-value对添加到这两个文件中,key字段一定要统一。

    2.配置Struts.xml,在Struts.xml的Struts节点下添加以下代码

    <!-- 告诉程序国际化资源文件是在i18n包下的resource开头的文件 --> 

    <constant name="struts.custom.i18n.resources" value="i18n/resource"></constant>

    3.在jsp中使用

    在jsp页面头部添加

        <%@ taglib prefix="s"  uri="/struts-tags"%>

    页面中书写

    <s:property value="getText('username')"/>:<input type="text">
    <br>
    <s:property value="getText('pwd')"/>:<input type="text">
    <br>

    或者

    <s:textfield name="username" key="username"></s:textfield>
    <br>
    <s:textfield name="pwd" key="pwd"></s:textfield>

    4.我们这里使用ie浏览器测试,当我们打开首页,会使用浏览器默认的语言显示。

    5.打开Internet选项,选择默认语言,选择英文-->上移,点击确定。

     6.刷新浏览器,发现变成英文

    三、中英文切换

     1.插入如下代码,url中的这个参数 request_locale会被 i18n 拦截器读取,然后根据这个值设置语言环境。 i18n 拦截器是struts中default里面自带的拦截器。

    <a href="i18n.action?request_locale=zh_CN">中文</a><br>
    <a href="i18n.action?request_locale=en_US">英文</a><br>

    2.配置Struts.xml,在login的action下面添加一个action。

    </action>
    <action name="i18n">
    <result>/index.jsp</result>
    </action>

    3.运行tomcat,现在可以实现中英文的切换。

  • 相关阅读:
    SpringBoot2.x异步任务EnableAsync
    SpringBoot 整合thymeleaf
    SpringBoot 整合freemarker
    RabbitMQ的安装及入门使(Windows)
    jacoco-统计代码覆盖率并生成报告
    Spring Transactional
    [转]IIS7.5优化--提高线程数来适应高并发
    系统设计时考虑
    设计模式之策略模式
    接到一个新需求后的处理流程
  • 原文地址:https://www.cnblogs.com/huguodong/p/6054600.html
Copyright © 2011-2022 走看看