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-example\WEB-INF\lib目录下将所有.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-example\WEB-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=\u56fd\u9645\u5316\u7a0b\u5e8f\u6d4b\u8bd5
test.body=\u8fd9\u662f\u4e00\u4e2a\u56fd\u9645\u5316\u7a0b\u5e8f\u6d4b\u8bd5\u4f8b\u5b50
这就是上面的中文的unicode码;
重新启动Tomcat, 在浏览器里输入http://localhost:8080/international/,你看,标题和内容是不是变成中文了;
11、 建立繁体中文的资源文件
在resources目录下建立一个application_tw.properties,输入内容:
# -- international test --
test.title=???H化程式?y??
test.body=?@是一?????H化程式?y??例子
因为java的国际化是通过unicode码来实现,所以要把代码转为unicode码;在Dos下,转到resources目录,执行:
native2ascii application_tw.properties application_zh_TW.properties
转换后的application_zh_TW.properties文件内容为:
# -- international test --
test.title=\u570b\u969b\u5316\u7a0b\u5f0f\u6e2c\u8a66
test.body=\u9019\u662f\u4e00\u500b\u570b\u969b\u5316\u7a0b\u5f0f\u6e2c\u8a66\u4f8b\u5b50
这就是上面的繁体中文的unicode码;
12、 测试多语言
打 开IE的“工具”->“Internet选项”菜单,“常规”选项卡,点击其中的“语言”按钮,添加“英语(美国)-[en-us]”语言,将其他 的语言删除,重新启动IE后,输入http://localhost:8080/international/index.jsp,你会发现内容已经变成 英文;
用同样的方法,可以测试简体中文和繁体中文;
上面是转的matrix上的一篇文章,个人觉得有几点要注意
1、<html:html locale="true"> ,不过不加也可以
2、资源文件 application_zh_CN.properties 这里的cn和us一定要大写,否则这个文件就起不了作用了
3、修改完了要重启IE,否则会让你很郁闷
今天还研究了struts标签,主要是看了下bean和logic,用这两个标签要比写java代码方便一些,不过要是和JSTL还有EL语言比起来,还是要麻烦很多。可是jsp 1.2不支持,那也只好这样啦
logic做循环,不论List里边是JavaBean或者HashMap,都可以直接取到想要的属性。
<logic:iterate id="stu" name="stuList" >
<tr>
<td>
<logic:match name="stu" value="20">
<bean:write name="stu" property="name"></bean:write>
</logic:match>
</td>
<td><bean:write name="stu" property="age"></bean:write></td>
</tr>
</logic:iterate>
<bean:size />可以拿来做判断,直接取到size的值
<bean:size id="size" name="stuList"/><%=size %>
分享到:
相关推荐
struts2国际化 标签 页面 处理类 实例,特殊注意点说明
经典的struts中文问题,国际化问题终极解决方案
struts2标签库和国际化的使用,你会了吗?如果还不懂请看这里。
一个struts2的用户管理实例,涉及增删改查。 主要用到的技术: 1.struts2 2.国际化 3.类型转换 4.struts标签
导入相关的jar包,直接发布便可以运行 struts2国际化+简单的标签+用户注册和登录(不实用数据库)
i18n,struts2实现国际化 手动配置过滤器实现国际化
struts1.2国际化和标签验证实例项目
struts1 javaee j2ee mvc jsp框架 企业级软件开发
2009 MLDN魔乐科技 Struts课堂实战视频教程 全6讲 01-Struts_简介与登陆...02-Struts_工作原理与核心配置 03-Struts_对于输入参数的处理 04-Struts_Bean标签功能 05-Struts_Struts国际化处理 非常经典,适合初学者!
Struts2标签库的组成 ...数据访问标签:主要包含用于输出值栈(ValueStack)中的值,完成国际化等功能的标签。 流程控制标签:主要包含用于实现分支,循环等流程控制的标签。 AJAX标签:用于支持Ajax效果
struts2 标签 国际化 文件上传 校验 拦截器 struts2.0的标签库(简介) 用过struts1.x的人都知道,标签库有html、bean、logic、tiles, 而struts2.0里的标签却没有分类,只用在jsp头文件加上 ...
文件的国际化字符串中使用OGNL,格式为${表达式},例如: validation.required=${getText(fileName)} is required 2. 使用java.text.MessageFormat中的字符串格式,格式为{ 参数序号(从0开始), 格式类形(number |...
通过定制jsp标签库,实现如下功能: 1.支持语言国际化(类似struts text标签) 2.支持图片文件、JS文件国际化
1、struts国际化的配置 * 在struts-config.xml文件中加入: 2、提供不同版本的国际化资源文件,中文需要采用native2ascii转换成unicode 3、在jsp中采用标签来读取国际化消息文本 4、了解利用struts默认将locale...
里面包括<html><bean><logic><tiles><nested><br>五组标签库的详细... 另外还有国际化(文字国际化/图片国际化)、 表单验证,以及验证框架 例子是用JBuilder2006做的 绝对经典!!!!!!!!!!!!!
里面包括struts国际化,struts标签的一些讲解,演示过程的截图等
NULL 博文链接:https://mr-cheney.iteye.com/blog/1057176
如下代码:<s:form action="login2"> 用户名" name="username"/> 密码" name="password"/> 提交"/>我们看着以上的代码跟HTML的差不了多少,但是因为struts2表单默认将表单内的每一个元素都分在单独的一行
2009 MLDN魔乐科技 Struts课堂实战视频教程 全6讲 01-Struts_简介与登陆...02-Struts_工作原理与核心配置 03-Struts_对于输入参数的处理 04-Struts_Bean标签功能 05-Struts_Struts国际化处理 非常经典,适合初学者!
struts2中的国际化 struts2转化器 struts2实现表单数据校验 struts2的基石-拦截器 struts2中实现IOC struts2中实现文件上传 struts2中实现CRUD struts2中的OGNL struts2的新表单标志的使用 struts2与AJAX一 struts2...