在Struts2.0.11.1版本,相应的指南中
http://struts.apache.org/2.0.11.1/docs/formatting-dates-and-numbers.html
Localizing form data with getText
Localizing form data with getText
Placing a textfield in a form like this
<s:textfield key="orderItem.price" />
引用
to input a number, one might have noticed that the number is always shown in the Java default number format. Not only that this is not "nice", if you are in a non-en locale, it will also cause trouble when submitting the form since type conversion is locale aware. The solution is to again use the message formats as defined above, by using the getText Method of ActionSupport:
<s:textfield key="orderItem.price" value="%{getText('format.number',{'orderItem.price'})}" />
引用
This maps to the method signature getText( String key, Object[] params ) in ActionSupport.
我在页面中如下使用:
<s:textfield key="orderOprRecord.jsFee" value="%{getText('format.number',{'orderOprRecord.jsFee'})}" size="8"/>
发现调用的是:
getText( String key, List args) in ActionSupport.
而非
getText( String key, Object[] params ) in ActionSupport
当然,这二个方法其实都调用同一个函:
LocalizedTextUtil.findText(clazz, key, getLocale(), defaultValue, argsArray);
详见:xwork-2.04,TextProviderSupport.java
最终发现,argsArrays为:['orderOprRecord.jsFee']
最后在LocalizedTextUtil.java,第590行
if (message != null) {
MessageFormat mf = buildMessageFormat(TextParseUtil.translateVariables(message, valueStack), locale);
String msg = mf.format(args);
result = new GetDefaultMessageReturnArg(msg, found);
}
String msg = mf.format(args);
这时,agrs内的值仍是:['orderOprRecord.jsFee']
自始自终没有经过处理,即没有在ValueStack中取出对应的值.
所以msg最后的值为空.
下面的难道是:struts2的手册的作者的笔误吗?
<s:textfield key="orderItem.price" value="%{getText('format.number',{'orderItem.price'})}" />
分享到:
相关推荐
这些特性后来都被融入到了Struts2中,使得Struts2不仅继承了WebWork的优点,还在此基础上进行了改进和扩展,成为了更加强大和灵活的框架。 ### Struts2的关键特性 1. **拦截器机制**:这是Struts2的核心概念之一,...
如何定义一个自定义的结果类型,以及如何利用Struts2的国际化功能提供多语言支持。此外,文档可能还会涵盖Struts2与其他技术的整合,如Spring框架的集成,以及数据库操作的示例。 在实际开发中,Struts2允许灵活的...
1. **Action和Result**:Struts2中的核心组件是Action类,它代表了应用程序中的业务逻辑。当用户进行操作时,请求会被映射到相应的Action,执行完业务逻辑后,会通过Result返回相应的视图。Result可以是JSP、...
在Struts2中,这通常通过资源 bundle 文件实现,例如`messages.properties`和`messages_zh_CN.properties`,分别用于存储默认语言和中文语言的文本。在Action或者JSP页面中,可以通过`<s:text>`标签来引用这些资源,...
在Struts2中实现国际化是一项关键功能,它允许应用程序为不同的语言和地区提供本地化的用户体验。下面将详细介绍如何使用Struts2来实现国际化,并探讨相关的源码和工具。 **一、国际化基础** 国际化(i18n)是软件...
4. **国际化与本地化**:展示如何在Struts2中实现多语言支持,提供不同地区的用户体验。 5. **插件和扩展**:介绍Struts2的插件系统,如Tiles、Freemarker、i18n等,以及如何自定义和集成第三方插件。 6. ** strut...
Struts2中文教程的文档,可能涵盖了从安装环境、创建第一个Struts2项目、Action与结果类型、拦截器的使用、国际化处理、表单验证,到Struts2与Spring、Hibernate等其他框架的集成,以及JSON插件的详细使用等内容。...
在这个主题“JSP文本域等各种好用的控件”中,我们将探讨JSP中的一些常见控件,特别是文本域以及其他第三方控件的使用。 首先,文本域(Textarea)是HTML中的一个表单元素,用于输入多行文本。在JSP中,我们可以...
8. ** strut2-struts1-plugin**:如果项目中存在遗留的Struts 1应用,Struts 2提供了兼容插件,允许两者无缝集成。 9. ** strut2-dojo-plugin**:Struts 2还提供了Dojo工具集插件,方便在Web应用中使用Dojo ...
01 为Struts 2.0做好准备 02 常用的Struts 2.0的标志(Tag) ...08 在Struts 2中实现IoC 09 在Struts 2中实现文件上传 10 在Struts 2中实现CRUD 11 Struts 2中的OGNL 12 trus 2的新表单标志的使用 13 Struts 2与AJAX
Struts2是一个强大的Java EE应用程序框架,用于构建和维护可扩展、模块化且易于管理的Web应用程序。这个框架是基于MVC(Model-View-Controller)设计模式的,旨在简化开发过程并提供一种统一的方式来处理HTTP请求。...
Struts2 标签库及国际化的使用案例 Struts2 框架提供了强大的标签库和国际化功能,本实验旨在掌握 Struts 2 标签库和国际化功能的使用,并实现用户注册页面的国际化显示。 一、Struts2 标签库 Struts2 框架提供了...
在Struts2中,Action通过实现`Action`接口或继承`ActionSupport`类来定义。每个Action对应一个特定的URL请求,且可以有多个方法来处理不同的HTTP请求类型。 2. **Interceptor**:拦截器在Action执行前后进行操作,...
"在Struts 2_0中国际化(i18n)您的应用程序" 展示了如何在Struts2中支持多种语言,包括资源文件的配置,以及如何根据用户的选择动态切换语言。 7. **文件上传**: "在Struts 2中实现文件上传" 讲解了Struts2如何...
在Struts2中实现国际化,可以帮助开发者创建对多语言环境友好的应用。 本示例主要围绕Struts2框架如何实现国际化进行深入探讨。源码中包含两个关键部分:WebRoot目录和src目录。 1. **WebRoot** 目录: - `WEB-...
5. **国际化**:学习如何在Struts2中实现多语言支持,通过资源文件管理不同语言的文本,为用户提供本地化体验。 6. **Struts2与Spring集成**:Struts2可以与Spring框架无缝集成,实现依赖注入,提高代码的可测试性...