Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 214|回复: 0

[struts学习]struts国际化程序尝试

[复制链接]
  • TA的每日心情
    开心
    2021-3-12 23:18
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2014-10-11 02:01:19 | 显示全部楼层 |阅读模式
    struts是一个MVC框架,像java和其他Java框架一样,struts可以轻松实现国际化;于是根据网上的资料,做了一个尝试,因为第一次做多语言程序,还是拐了很多弯路;但所幸,经过不断的尝试,终于成功的实现多语言版本的简单页面;  
    因为程序非常简单,所以在整个尝试过程中,全部使用手工编码,没有使用任何辅助工具;  

    1、 建立服务器  
         我使用Tomcat4作为测试环境,建立过程(略);  

    2、 下载struts  
         可以到http://jakarta.apache.org/struts/index.HTML下载,下载后解压,把其中的.war文件拷贝到Tomcat的webapps目录下,启动Tomcat,如果http://localhost:8080/struts-example/ 运行没有问题,说明环境建立成功;这些.war文件在Tomcat启动后会自动展开成文件,里面有源代码,可以作为源码研究;  

    3、 建立工程  
         在webapps目录下建立一个international文件夹,再在international目录下建立WEB-INF文件夹和WEB-INF/classes文件夹,这些都是一个JSP工程必须的;  

      

      
      
    4、 加了struts的类  
         在WEB-INF目录下建立一个lib子目录,把struts-exampleWEB-INFlib目录下将所有.jar文件拷贝到该目录下;这些文件是struts的控制类库和标签类库等;  
    commons-beanutils.jar  
    commons-collections.jar  
    commons-digester.jar  
    commons-fileupload.jar  
    commons-lang.jar  
    commons-logging.jar  
    commons-validator.jar  
    jakarta-oro.jar  
    struts.jar  
      
      
       
       
       

       
      
      
    5、 加入struts标签定义文件  
         从struts-exampleWEB-INF目录下,把.TLD文件拷贝到international的WEB-INF目录下,这些文件标签库的定义文件;  
    struts-bean.tld  
    struts-html.tld  
    struts-logic.tld  
    struts-nested.tld  
    struts-template.tld  
    struts-tiles.tld  

    6、 建立struts的config文件  
         建立struts的config文件的struts-config.xml,内容如下:  

    <?xml version="1.0" encoding="ISO-8859-1" ?>  

    <!DOCTYPE struts-config PUBLIC  
    "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd";>  

    <struts-config>  

    <message-resources parameter="resources.application"/>  

    </struts-config>  
         message-resources标签是指message资源的文件,就是我们存放我们的多种语言的提示信息的文件,resources.application表是classes目录下的resources目录用来存放资源文件,默认语言文件名为application.properties,中文为application_zh_CN.properties,其他语言类似;  

    7、 建立web.xml文件  
    <?xml version="1.0" encoding="ISO-8859-1"?>  

    <!DOCTYPE web-app  
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"  
    "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd";>  

    <web-app>  
    <display-name>test international</display-name>  

    <Servlet>  
    <servlet-name>action</servlet-name>  
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>  
    <init-param>  
    <param-name>config</param-name>  
    <param-value>/WEB-INF/struts-config.xml</param-value>  
    </init-param>  
    <init-param>  
    <param-name>debug</param-name>  
    <param-value>2</param-value>  
    </init-param>  
    <init-param>  
    <param-name>detail</param-name>  
    <param-value>2</param-value>  
    </init-param>  
    <load-on-startup>2</load-on-startup>  
    </servlet>  

    <servlet-mapping>  
    <servlet-name>action</servlet-name>  
    <url-pattern>*.do</url-pattern>  
    </servlet-mapping>  

    <welcome-file-list>  
    <welcome-file>index.jsp</welcome-file>  
    </welcome-file-list>  

    <taglib>  
    <taglib-uri>/tags/struts-bean</taglib-uri>  
    <taglib-location>/WEB-INF/struts-bean.tld</taglib-location>  
    </taglib>  

    <taglib>  
    <taglib-uri>/tags/struts-html</taglib-uri>  
    <taglib-location>/WEB-INF/struts-html.tld</taglib-location>  
    </taglib>  

    <taglib>  
    <taglib-uri>/tags/struts-logic</taglib-uri>  
    <taglib-location>/WEB-INF/struts-logic.tld</taglib-location>  
    </taglib>  

    <taglib>  
    <taglib-uri>/tags/struts-nested</taglib-uri>  
    <taglib-location>/WEB-INF/struts-nested.tld</taglib-location>  
    </taglib>  

    <taglib>  
    <taglib-uri>/tags/struts-tiles</taglib-uri>  
    <taglib-location>/WEB-INF/struts-tiles.tld</taglib-location>  
    </taglib>  

    </web-app>  
    上面的web.xml定义了struts的控制类、config文件和标签,因为比较简单,所以不做解释;  

    8、 建立资源文件  
         在classes目录下,建立一个resources目录,用来存放资源文件;  
    先建立默认的资源文件application.properties和英文(美国)的资源文件application_en_US.properties,内容为:  

    # -- international test --  
    test.title=international application test  
    test.body=This is a international application test  

    先建立这两个文件,中文的等下一步建立  

    9、建立jsp文件  
    在international目录下,建立index.jsp文件,内容为:  

    <%@ page contentType="text/html;charset=UTF-8" %>  
    <%@ taglib uri="/tags/struts-bean" prefix="bean" %>  
    <%@ taglib uri="/tags/struts-html" prefix="html" %>  
    <%@ taglib uri="/tags/struts-logic" prefix="logic" %>  
    <html:html locale="true">  
    <head>  
    <title><bean:message key="test.title"/></title>  
    <html:base/>  
    </head>  
    <body bgcolor="white">  

    <p><bean:message key="test.body"/></p>  

    </body>  
    </html:html>  

         在这里<html:html locale="true">表示使用浏览器默认的地区和语言;<bean:message key="test.title"/>的意思是取对应资源文件里的test.title项目的内容;  
    启动Tomcat,在浏览器里输入http://localhost:8080/international/,查看效果,如果浏览器标题显示international application test,页面里显示This is a international application test则说明你的程序成功了;下面只要增加资源文件,你就可以在多种语言的系统里看了;  

    10、 建立简体中文的资源文件  
    在resources目录下建立一个application_cn.properties,输入内容:  

    # -- international test --  
    test.title=国际化程序测试  
    test.body=这是一个国际化程序测试例子  

         因为java的国际化是通过unicode码来实现,所以要把代码转为unicode码;在Dos下,转到resources目录,执行:  
    native2ascii application_cn.properties application_zh_CN.properties  
    转换后的application_zh_CN.properties文件内容为:  

    # -- international test --  
    test.title=u56fdu9645u5316u7a0bu5e8fu6d4bu8bd5  
    test.body=u8fd9u662fu4e00u4e2au56fdu9645u5316u7a0bu5e8fu6d4bu8bd5u4f8bu5b50  

    这就是上面的中文的unicode码;  
    重新启动Tomcat, 在浏览器里输入http://localhost:8080/international/,你看,标题和内容是不是变成中文了;  

    11、 建立繁体中文的资源文件  
    在resources目录下建立一个application_tw.properties,输入内容:  

    # -- international test --  
    test.title=&#65533;&#65533;化程式&#65533;&#65533;  
    test.body=&#65533;是一&#65533;&#65533;&#65533;化程式&#65533;&#65533;例子  


    因为java的国际化是通过unicode码来实现,所以要把代码转为unicode码;在Dos下,转到resources目录,执行:  
    native2ascii application_tw.properties application_zh_TW.properties  
    转换后的application_zh_TW.properties文件内容为:  

    # -- international test --  
    test.title=u570bu969bu5316u7a0bu5f0fu6e2cu8a66  
    test.body=u9019u662fu4e00u500bu570bu969bu5316u7a0bu5f0fu6e2cu8a66u4f8bu5b50  

    这就是上面的繁体中文的unicode码;  

    12、 测试多语言  
          打开IE的“工具”->“Internet选项”菜单,“常规”选项卡,点击其中的“语言”按钮,添加“英语(美国)-[en-us]”语言,将其他的语言删除,重新启动IE后,输入http://localhost:8080/international/index.jsp,你会发现内容已经变成英文;  
    用同样的方法,可以测试简体中文和繁体中文;   

      
      
       
       

         
       

         
       
      


                            function TempSave(ElementID)
                            {
                                    CommentsPersistDiv.setAttribute("CommentContent",document.getElementById(ElementID).value);
                                    CommentsPersistDiv.save("CommentXMLStore");
                            }
                            function Restore(ElementID)
                            {
                                    CommentsPersistDiv.load("CommentXMLStore");
                                    document.getElementById(ElementID).value=CommentsPersistDiv.getAttribute("CommentContent");
                            }
                   
                        


    源码下载:http://file.javaxxz.com/2014/10/11/020118328.zip
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-5-17 11:55 , Processed in 0.379075 second(s), 48 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表