- 浏览: 174799 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
yinvent:
谢谢,终于找到一个可以用的例子!
struts2学习之一简单范例 -
锅巴49:
学习了,不错.
使用 Spring 2.5 注释驱动的 IoC 功能 -
fooky:
你好,今天在配置spring secutiry3,想让系统先从 ...
spring security 配置文件小结(逐步深化到url级别) -
lj508:
你好啊 请教你个问题
我用那个纯jsp上传时
怎么运行时根本没 ...
Sturt2学习之十二---文件上传 -
641216927:
我还是一个struts2新手。
有个问题请教一下:
同时在t ...
struts2学习之一简单范例
一、java对国际化的支持
java.util.ReasourceBudle
java.util.Local
1、如何来获得当前jdk已经支持的国家
import java.util.Locale; public class Test1 { public static void main(String[] args) { Locale[] locales = Locale.getAvailableLocales();//该方法是静态的,而且返回的是Local的数组 for(Locale locale : locales) { System.out.println(locale.getDisplayCountry() + " : " + locale.getCountry()); System.out.println("*********************************************************"); System.out.println(locale.getDisplayLanguage() + " : " + locale.getLanguage()); } } }
2、用java实现国际化
文件名字: basename_语言_国家
如
hellofile_en_US.properties
hellofile_zh_CN.properties
文件内容:
hello=helloworld
hello=你好-----》需要转化后写上去----》用java下的工具native2ascii得到 hello=\u4f60\u597d
涉及到类
java.util.ReasourceBudle
java.util.Local
import java.util.*; public class Test2 { public static void main(String[] args) { Locale locale1=Locale.getDefault();//这个语句可以得到本地的默认Local Locale locale = Locale.US;//设置本地Local ResourceBundle bundle = ResourceBundle.getBundle("hellofile",locale);//通过静态方法得到ResourceBundle String value = bundle.getString("hello");//通过key得到value System.out.println(value); } }
3、国际化资源文件不写死的情况
文件名字一样: basename_语言_国家
如
hellofile_en_US.properties
hellofile_zh_CN.properties
文件内容:
hello = hello world : {0}
hello = 你好 : {0}
{0}是程序运行时动态传进去的。
注:以上必须从0开始,一个个连续的加上去。
涉及到新类import java.text.MessageFormat类
import java.util.*; import java.text.*; public class Test3 { public static void main(String[] args) { Locale locale = Locale.US; ResourceBundle bundle = ResourceBundle.getBundle("hellofile",locale); String value = bundle.getString("hello"); String result = MessageFormat.format(value,new Object[]{"北京"}); System.out.println(result); } }
二、struts国际化的支持
1、对jsp页面的国际化
1)国际化前在src文件夹中,有资源文件message.properties
struts.xml文件中有配置:
<constant name="struts.custom.i18n.resources" value="message"></constant>
2)国际化准备工作,就是将原来src文件夹下的message.properties文件
改为需要国际化的那几个国家几个文件:
message_en_US.properties
message_zh_CN.properties
内容分别如下:
addUser = Add User Information
username.invalid = username "{0}" invalid
username.xml.invalid = username xml invalid
addUser = 增加用户信息
username.invalid = 用户名 "{0}" 填写不正确
username.xml.invalid = 验证框架提示用户名不正确
国际化后即可用浏览器预览: Internate选项/常规/语言/添加语言英语/上移
即可显示英文版了
2、对action类validate()方法的国际化
1)用到的文件:工作同上面jsp国际化的1)2)两步
2)在文件message_en_US.properties
message_zh_CN.properties
分别增加以下内容username.invalid=username error !
username.invalid=\u7528\u6237\u540d\u586b\u5199\u4eod
3)validate()方法修改如下
if (null == username || username.length() < 6 || username.length() > 10) { this.addActionError(this.getText("username.invalid")); }
当客户使用英文操作浏览器时,验证错误时提示如下:username error !
当客户使用中文浏览器时。验证错误时提示如下信息:用户名不正确
因为“用户名不正确”正好对应ascii为上面的“\u7528\u6237\u540d\u586b\u5199\u4eod”
2、1同样validate方法中也可以加动态的参数,如下对上面的2、对类validate()方法的国际化修改如下:
2)在文件message_en_US.properties
message_zh_CN.properties
分别增加以下内容username.invalid = username "{0}" invalid
username.invalid = 用户名 "{0}" 填写不正确
3)validate()方法修改如下
if (null == username || username.length() < 6 || username.length() > 10) { //this.addActionError(this.getText("username.invalid",new String[]{username})); //或将上面一句改成以下方式 List list = new ArrayList(); list.add(username); this.addActionError(this.getText("username.invalid",list)); }
当客户使用英文操作浏览器时,输入"张三"验证错误时提示如下:username"张三"error !
当客户使用中文浏览器时。验证错误时提示如下信息:用户名"张三"不正确
3、验证框架(xml)的国际化
1)用到的文件:工作同上面jsp国际化的1)2)两步
2)在文件message_en_US.properties
message_zh_CN.properties
分别增加以下内容username.xml.invalid = username xml invalid
username.xml.invalid = 验证框架提示用户名不正确
3)在原来的registerAtionValidate.xml文件中增加
<message key="username.xml.invalid"></message>
例如:
<field name="username"> <field-validator type="requiredstring"> <param name="trim">true</param> <message key="username.xml.invalid"></message> </field-validator> <field-validator type="stringlength"> <param name="minLength">6</param> <param name="maxLength">10</param> <message>username should be between ${minLength} and ${maxLength}</message> </field-validator> </field>
4、以上国际化文件都是全局的,还有包级别和类级别的资源文件
1)包级别命名规则。package_en_US.properties
package_zh_CN.properties
此时和java的变量一样,若在包级别中发现内容,就不会再去全局中去找了。
2)类级别命名规则RegisterAction_en_US.properties
RegisterAction_zh_CN.properties
此时和java的变量一样,若在类级别中发现内容,就不会再去全局和包级别中去找了。
5、表单form国际化
1)要求:Struts表单不能设置为simple主题
2)它国际化是和相应的action去关联,会首先去找类级别的国际化。
6、也可以在jsp页面中直接用i18n来挨个字段指定
1)假如我在src目录下有资源 包
temp_en_US.properties
temp_zh_CN.properties
内容为: hello = world,{0}
hello = 你好,{0}
<body> <center> <s:i18n name="temp"> <s:text name="hello"> <s:param>langsin</s:param> </s:text> </s:i18n> </center> </body>
发表评论
-
webwork Action中获取request, response,session对象的方法
2009-04-16 17:25 1662webwork Action中获取request ... -
不依赖XML代码粘合创建Struts 2应用程序
2009-04-07 15:32 1442不依赖XML代码粘合创建Struts 2应用程序 原文地址:h ... -
struts.properties粗解
2009-04-07 14:28 1423原文章地址:http://fratemity1314.spac ... -
Struts2学习之十五-声明式的异常处理
2009-04-06 22:32 888看下文前可以先参考: http://blog.chinaun ... -
struts2学习之十四----其他知识点
2009-04-06 19:31 1296一、struts2探索学习完一定需要实际去运行,这样才能有更加 ... -
Sturt2+spring整合
2009-04-01 17:55 1140一、相应的spring的jarStruts2-spring-p ... -
Sturt2学习之十三---文件下载
2009-04-01 17:01 1031Sturt2学习之十三---文件下载1、download.js ... -
Sturt2学习之十二---文件上传
2009-04-01 15:59 2290一、纯jsp文件上传1、新建文件夹upload内含upload ... -
struts2学习之九---拦截器
2009-04-01 10:34 1471拦截器实现机制一、回忆“java反射与动态代理二.txt”,因 ... -
struts2学习之八校验框架--非字段校验
2009-04-01 01:16 1267一、非字段校验 用属性来校验字段和字段检验刚好是参照物相反 ... -
struts2学习之七校验框架--字段校验
2009-04-01 00:23 1548struts2学习之七校验框架--字段校验(使用xml文件)一 ... -
struts2学习之六输入校验
2009-03-31 21:53 1565一、输入校验与类型转化的关系 遇到类型转换错误的时候(也就是说 ... -
struts2学习之五(最基本的)输入校验
2009-03-31 21:51 931一、register.jsp注册页面 //以下第一两句 的作用 ... -
struts2学习之四、类型转换2
2009-03-31 17:50 853<h3><font color=" ... -
struts2学习之三、类型转换
2009-03-31 17:08 909struts2学习之三、类型转 ... -
struts2学习之二------基本验证
2009-03-31 15:39 1003struts2学习之二----基本 ... -
struts2学习之一简单范例
2009-03-31 14:45 2213简单范例1、下载struts2.0.11-all.rar 2、 ...
相关推荐
- 同时,它还支持国际化,可以轻松地切换语言环境,满足多语言应用的需求。 7. **实用特性** - `dynamicLoad`属性用于控制组件是否动态加载,可以优化页面加载性能。 - `ajaxValidation`属性可以开启或关闭表单...
Struts2标签库是基于JSP标准标签库(JSTL)的扩展,它提供了一系列预定义的标签,用于处理视图层的展示逻辑,如表单处理、数据验证、国际化等。这些标签通常比纯HTML和脚本更易于维护,且与Action类解耦,提高了代码...
8. **国际化与本地化(I18N & L10N)**:Struts2支持多语言环境,通过`com.opensymphony.xwork2.util.LocalizedTextUtil`等类实现资源文件的加载和本地化字符串的获取。 9. **插件(Plugins)**:Struts2的可扩展性...
Struts是Apache软件基金会的一个开源框架,主要用于构建Java Web应用程序。在Struts中,Action类是...在实际应用中,你还可以学习如何集成其他Struts特性,如国际化、数据校验、拦截器等,以构建更复杂的Web应用程序。
- **国际化与本地化**:框架内置了对多语言支持的机制,方便创建国际化的应用程序。 - **插件系统**:Struts2的插件机制允许快速集成第三方库和功能,如Ajax、富客户端组件、REST服务等。 总的来说,Struts2.0.11-...
增强了插件架构,扩展了框架的功能,如国际化的支持;优化了性能,减少了不必要的HTTP请求和提高了响应速度;加强了安全性,修复了一些已知的安全漏洞,如XSS和CSRF攻击防护。 Struts 2与其他Java框架的集成也十分...
5. **国际化与本地化**:Struts支持多语言环境,通过资源文件可以轻松实现应用的国际化。 6. **异常处理**:Struts提供了一套完整的异常处理机制,可以通过配置文件定义全局或特定Action的异常处理策略。 7. **...
5. **国际化(i18n)与本地化(l10n)**:Struts2支持多语言环境,开发者可以通过简单的配置实现应用的国际化和本地化。 6. **插件体系**:Struts2有一个强大的插件系统,可以轻松地扩展框架功能,如Spring集成、...
5. **国际化(i18n)**:如何为应用添加多语言支持。 6. **异常处理**:演示了如何配置和处理应用程序中的异常。 7. **Tiles布局**:使用Tiles插件来组织和定义页面模板。 8. **Ajax支持**:展示了Struts2与...
另外,Struts2的国际化、异常处理、主题和模板等功能也是开发者必须熟悉的。 总的来说,Struts2是一个强大且灵活的MVC框架,它的设计原则和实践方法对于任何Java Web开发者来说都是宝贵的知识。张孝祥老师的课程...
在学习过程中,你可以通过阅读`01.pdf`这份文档,了解到更多关于Struts2的基础知识,包括如何创建Action、配置Action、使用拦截器、处理表单提交、实现国际化等。同时,文档可能还会介绍如何集成其他技术,如Spring...
Struts-xwork-core是Struts2框架的核心组件,它提供了Action和结果的执行模型,以及类型转换、数据验证和国际化等功能。在这个压缩包中,包含了该核心库的源代码,对于学习和理解Struts2的工作原理及其内部机制极具...
Struts 2提供了许多特性,如强大的国际化支持、自定义拦截器、动态方法调用、强大的表单验证和文件上传功能等。其强大的插件系统允许开发者轻松地扩展框架功能,以满足特定需求。 总的来说,Struts 2.0.1是Java Web...
4. `xwork-core.jar`:XWork是Struts2的基础,提供了许多基础的OOP(面向对象编程)特性,如类型转换、异常处理和国际化支持。 5. `ognl.jar`:OGNL(Object-Graph Navigation Language)是Struts2的默认表达式语言...
标题:Struts2学习之二--Struts2标签介绍 描述与内容摘要: 本文主要介绍了Struts2框架中的标签库,特别聚焦于非UI类型的标签,包括条件判断、迭代和国际化处理等。通过实例,详细解析了`if/elseif/else`、`...
5. **国际化与本地化**: Struts2内置了对多语言的支持,开发者可以通过简单的配置实现应用的国际化和本地化。 6. **模板引擎**: Struts2支持多种视图技术,如JSP、FreeMarker、Velocity等,这些模板引擎可以帮助...
这些实例是学习和理解Struts2工作原理的好工具,涵盖了各种功能和用法,如动作映射、拦截器、结果类型、国际化、表单验证等。通过这些例子,开发者可以快速上手并熟练掌握Struts2的核心特性。 `docs`目录包含了...
4. **国际化与本地化支持**:方便地实现多语言网站。 5. **配置驱动**:通过XML配置文件,可以灵活配置应用行为,降低代码的耦合度。 总的来说,Struts框架为Web开发提供了一个强大的基础架构,使得开发者能够专注...
7. **国际化与本地化**:Struts 2支持多语言,可以轻松实现应用的国际化和本地化,通过资源包(properties文件)管理不同语言的文本。 8. **结果类型(Result Types)**:Struts 2预定义了多种结果类型,如...
9. **国际化支持**:Struts2提供了方便的国际化功能,通过资源包(Properties文件)可以轻松实现多语言环境。 10. **AJAX支持**:Struts2的AJAX插件允许部分页面更新,提高了用户体验。 在使用Struts2-2.2.1版本时...