- 浏览: 310229 次
最新评论
-
nucleus:
为什么都是没有图的。。。。。。。求图片啊
《研磨struts2》第七章 值栈和OGNL 之 7.4 ActionContext和ServletActionContext -
nucleus:
为什么都是没有图的。。。。。。。求图片啊
《研磨struts2》第七章 值栈和OGNL 之 7.4 ActionContext和ServletActionContext -
nucleus:
为什么都是没有图的。。。。。。。求图片啊
《研磨struts2》第七章 值栈和OGNL 之 7.4 ActionContext和ServletActionContext -
nucleus:
为什么都是没有图的。。。。。。。求图片啊
《研磨struts2》第七章 值栈和OGNL 之 7.4 ActionContext和ServletActionContext -
hunanjun000:
《研磨struts2》第四章 Action 之 4.5 Action的其它重要知识
12.4 加入国际化信息
12.4.1 回顾国际化信息
接下来给上面的示例加上对国际化信息的支持。
先来回忆一下国际化信息的基本知识,国际化信息的知识分成三大部分:
- 如何配置国际化信息?
l 全局级别。在struts.xml中配置常量struts.custom.i18n.resources,来指定国际化文件的名字。
l Action级别。在Action的包中建立与Action同名的国际化文件,如(UserAction就要配合UserAction.properties)。
- 在哪里使用国际化信息?
l 在页面上通过<s:text/>标签或表单标签引用。
l 在继承ActionSupport类的Action中使用getText方法引用。
l 在验证框架中的<message>标签中引用。
- 如何指定使用哪种语言?
l 浏览器配置。
l 在struts.xml中配置常量struts.locale。
l 在request中传入名为request_locale的参数。
在本节的示例中,三大部分各取一个知识点使用即可,示例将采用Action级别的国际化信息文件,在页面上通过<s:text/>标签或表单标签引用,在struts.xml中配置常量struts.locale来指定语言。
示例中,只需要支持zh_CN和en_US两种语言即可。
12.4.2 准备国际化信息文件
采用Action级别的国际化信息文件。就需要在UserAction的同包下,建立两个国际化信息文件,UserAction_zh_CN.properties和UserAction_en_US.properties。
要注意:在编写具体的国际化信息文件的时候,中文是不可以直接使用的,必须要转码后才能使用。
在国际化信息文件中,只需要给出各个页面的标题和UserModel各个属性名作为表单域前面的文字即可,因此,UserAction_en_US的内容为:
- add.title = Create a User
- add.submit = Create
- update.title = Update a User
- update.submit = Update
- query.title = Query Users
- query.submit = Query
- query.age1 = Min Age
- query.age2 = Max Age
- query.error = your min age is more than your max age.
- list.title = Users Info
- list.operation = operation
- list.add = Create a User
- list.query = Query Users
- user.userId = userId
- user.name = name
- user.sex = sex
- user.age = age
由于中文不能直接使用,先写出中文内容的源文件UserAction_src_zh_CN.properties,文件的内容为:
- add.title = 添加用户
- add.submit = 添加
- update.title = 修改用户
- update.submit = 修改
- query.title = 查询用户
- query.age1 = 年龄最小值
- query.age2 = 年龄最大值
- query.submit = 查询
- query.error = 您输入的年龄最小值大于最大值
- list.title = 用户信息
- list.operation = 操作
- list.add = 添加用户
- list.query = 查询用户
- user.userId = 用户编号
- user.name = 姓名
- user.sex = 性别
- user.age = 年龄
然后通过native2ascii,其命令为“native2ascii 源文件 目标文件”:
得到真正能用的UserAction_zh_CN.properties
- add.title = \u6dfb\u52a0\u7528\u6237
- add.submit = \u6dfb\u52a0
- update.title = \u4fee\u6539\u7528\u6237
- update.submit = \u6dfb\u52a0
- query.title = \u67e5\u8be2\u7528\u6237
- query.age1 = \u5e74\u9f84\u6700\u5c0f\u503c
- query.age2 = \u5e74\u9f84\u6700\u5927\u503c
- query.submit = \u67e5\u8be2
- query.error = \u60A8\u8F93\u5165\u7684\u5E74\u9F84\u6700\u5C0F\u503C\u5927\u4E8E\u6700\u5927\u503C
- list.title = \u7528\u6237\u4fe1\u606f
- list.operation = \u64cd\u4f5c
- list.add = \u6dfb\u52a0\u7528\u6237
- list.query = \u67e5\u8be2\u7528\u6237
- user.userId = \u7528\u6237\u7f16\u53f7
- user.name = \u59d3\u540d
- user.sex = \u6027\u522b
- user.age = \u5e74\u9f84
12.4.3 让页面来使用国际化信息
在页面上使用国际化信息的方法有两种:
- 通过<s:text name=""/>中的name属性来引用国际化信息中的key。
- 通过表单标签的key属性来引用国际化信息中的key,如<s:textfield name=”user.userId” key=”user.userId”/>,其他表单标签也类似。而且如果key属性和name属性相同,只写key属性,去掉name属性也行,提交的时候会按照key属性的值提交。而且原来指定表单域前面的文字的label属性也可以去掉了。
仅以在add.jsp上使用国际化信息为例,
- <%@ page language="java" contentType="text/html; charset=gb2312"
- pageEncoding="gb2312"%>
- <%@taglib prefix="s" uri="/struts-tags" %>
- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
- <title><s:text name="add.title"/></title>
- </head>
- <body>
- <s:form action="userAdd" method="post">
- <s:textfield key="user.userId"/>
- <s:textfield key="user.name"/>
- <s:select list="sexs" key="user.sex"/>
- <s:textfield key="user.age"/>
- <s:submit name="" key="add.submit"/>
- </s:form>
- </body>
- </html>
在这个页面上,<title>内引用了<s:text name="add.title"/>来引用国际化信息;而<s:textfield key="user.userId"/>更是去掉了name属性和label属性,key属性既代表了引用user.userId这条国际化信息,又代表了提交是这个文本框名为user.userId,其他的表单标签也类似。
但是,有一个特殊的<s:submit/>标签,它作为提交按钮,并不应该被作为参数传入下一个Action,所以,它的name属性被设置为空字符串,它的key属性仍指明了到底引用哪条国际化信息。
其余的update.jsp、query.jsp和list.jsp也像add.jsp一样,请读者把握到底是显示内容,还是表单域,选用合适的方法进行引用国际化信息,这里就不再赘述了。
由于现在struts.xml中注册的语言信息为zh_CN:
图12.5 中文信息下的添加页面
12.4.4 切换语言
只需要把struts.xml中的语言信息修改为en_US,而不需要修改任何其他东西,add.jsp就可以呈现在引用信息下的状态:
运行结果如下:
图12.6 英文信息下的添加页面
私塾在线网站原创《研磨struts2》系列
转自请注明出处:【http://sishuok.com/forum/blogPost/list/0/4112.html】
欢迎访问http://sishuok.com获取更多内容
发表评论
-
研磨struts2 目录贴
2012-08-24 12:12 163531.1 《研磨struts2》 第一章 Struts2 ... -
跟着cc学设计 之 研磨设计模式 视频教程 出炉了
2012-08-15 07:16 2研磨设计模式——跟着CC学设计系列精品课程,上线了! ... -
研磨struts2 目录
2012-07-30 21:15 2471.1 《研磨struts2》 第一章 Strut ... -
研磨struts2 目录
2012-07-30 16:54 361.1 《研磨struts2》 第一章 Stru ... -
《研磨struts2》A.2 struts.properties的配置 之 A.2.1 概述
2012-07-09 12:10 3071A.2.1 概述 如果我们希望覆盖在 ... -
《研磨struts2》附录A Struts2的配置 之 A.1 struts.xml的配置
2012-07-09 12:10 2719A.1 struts.xml的配置 A.1.1 ... -
《研磨struts2》第二十一章 零配置 之 21.3 通过注解来实现零配置
2012-07-06 08:07 293021.3 通过注解来实现零配置 21.3.1 ... -
《研磨struts2》第二十一章 零配置 之 21.2 约定大于配置
2012-07-05 10:44 247421.2 约定大于配置 21.2.1 约定 ... -
《研磨struts2》第二十一章 零配置 之 21.1 概述
2012-07-05 10:44 232621.1 概述 21.1.1 零配置概述 在 ... -
《研磨struts2》第二十章 整合SiteMesh 之 20.3 整合Struts2与SiteMesh
2012-07-04 08:15 2089在Struts2中使用SiteMesh ... -
《研磨struts2》第二十章 整合SiteMesh 之 20.2 单独使用SiteMesh
2012-07-03 08:00 210520.2 单独使用SiteMesh 20. ... -
《研磨struts2》第二十章 整合SiteMesh 之 20.1 调整应用的风格
2012-07-03 07:59 187020.1 调整应用的风 ... -
《研磨struts2》19.2 使用execAndWait拦截器模拟进度条 之 19.2.1 模拟长时间运行的Action
2012-07-02 12:24 215019.2.1模拟长时间运行的Action ... -
《研磨struts2》第十九章 进度条 之 19.1 使用“进度条”告知用户进度
2012-07-02 12:23 215219.1 使用“进度条”告知用户进度 ... -
《研磨struts2》第十八章 结合JFreeChart 之 18.3 Struts2结合JFreeChart
2012-06-28 12:12 201518.3 Struts2结合JFreeChart ... -
《研磨struts2》第十八章 结合JFreeChart 之 18.2 Struts2插件概述
2012-06-28 12:11 2031Struts2并没有求大求全,企图把所有 ... -
《研磨struts2》第十八章 结合JFreeChart 之 18.1 JFreeChart使用
2012-06-20 15:48 229618.1 JFreeChart使用 18.1.1概 ... -
研磨struts2(1-10章)电子书下载
2012-06-19 07:30 6078研磨struts2的博客文章 私塾在线学习网 《研 ... -
《研磨struts2》第十七章 防止重复提交 之 17.3 更强大的tokenSession拦截器
2012-06-18 13:46 208217.3 更强大的tokenSession拦截器 ... -
《研磨struts2》第十七章 防止重复提交 之 17.2 使用标签
2012-06-18 13:45 234017.2 使用<s:token/>标签 ...
相关推荐
这个"带Struts2和Hibernate的CRUD小Demo"是一个实用的学习资源,它演示了如何将这两个框架集成以实现数据的创建、读取、更新和删除(CRUD)操作。 首先,Struts2是一个开源的MVC(Model-View-Controller)框架,它...
Struts2 CRUD是一个基于Apache Struts2框架实现的创建、读取、更新和删除(Create, Read, Update, Delete)操作的示例项目。这个项目主要用于演示如何在Web应用程序中使用Struts2来处理基本的数据操作。Struts2是...
Struts2是Java Web开发中一个非常流行的MVC框架,它极大地简化了Web应用程序的构建,特别是对于实现CRUD(创建、读取、更新、删除)操作。在本篇文章中,我们将深入探讨如何使用Java Struts2框架来完成这些基本的...
### Struts 2中实现CRUD操作详解 #### 一、引言 CRUD操作是软件开发中最常见的数据处理方式之一,它代表了对数据进行的四种基本操作:创建(Create)、读取(Read)、更新(Update)与删除(Delete)。在企业级应用开发中,...
Struts2、Spring和Hibernate是Java Web开发中的三大框架,它们各自在应用程序的不同层面上发挥着重要作用。Struts2作为MVC(Model-View-Controller)框架,负责处理请求和展示视图;Spring则是一个全面的后端解决...
这个"Struts2-Crud+JdbcDemo"项目是一个基础的学习示例,涵盖了如何使用Struts2和JDBC进行基本的CRUD(创建、读取、更新和删除)操作。 首先,我们来详细了解一下Struts2的核心概念: 1. **Action类**:在Struts2...
在本示例中,"strutsCRUD1.rar" 是一个包含Struts1实现CRUD操作的项目压缩包。CRUD代表创建(Create)、读取(Retrieve)、更新(Update)和删除(Delete),这是数据库操作的基本功能。 首先,让我们讨论一下Struts1的核心...
【Spring4-Struts2-Hibernate4 CRUD Demo_3】是一个综合性的开发示例,它展示了如何在Java Web应用程序中整合三大主流框架:Spring 4、Struts 2和Hibernate 4来实现CRUD(创建、读取、更新、删除)操作。这个Demo...
Struts2 CRUD是一个典型的Java Web开发中的概念,它涉及到Model-View-Controller(MVC)设计模式的应用,以及使用Struts2框架实现对单一数据库表的创建(Create)、读取(Retrieve)、更新(Update)和删除(Delete)功能。...
【Spring4-Struts2-Hibernate4 CRUD Demo_5】是一个综合性的开发示例,它展示了如何在Java Web应用程序中整合三大主流框架:Spring 4、Struts2和Hibernate4,进行基本的数据创建(Create)、读取(Read)、更新...
Hibernate+Spring+Struts2+ExtJS开发CRUD功能
7. **国际化和本地化**:在开发CRUD应用时,通常需要支持多语言环境。Struts支持资源文件,可以在其中存储翻译过的消息,根据用户的语言设置动态加载。 8. **异常处理**:在执行CRUD操作时,可能会遇到各种异常,如...
Struts2 CRUD-2 是一个基于Struts2框架实现的简单数据操作示例,主要涵盖了创建(Create)、读取(Read)、更新(Update)和删除(Delete)这四个数据库操作的基本功能。Struts2是一个非常流行的Java Web开发框架,...
5. **Interceptor拦截器**:拦截器是Struts2的核心特性之一,它们可以在Action方法执行前后插入额外的逻辑,如数据校验、事务管理、权限控制等。在CRUD操作中,拦截器可以用来确保数据完整性和安全性。 6. **结果...
在基于Struts的CRUD(创建、读取、更新和删除)操作中,我们将探讨如何利用Struts来处理基本的数据操作,以及如何与其他流行框架如Spring和MySQL数据库相结合。 **1. Struts框架** Struts是Apache软件基金会的一个...
Struts2实现CRUD(增 删 改 查) Maven版; eclipse直接导入使用; 教程地址:http://blog.csdn.net/sky_zhangfan/article/details/1896842
这个DEMO对于初学者来说是一个很好的实践案例,它展示了如何在实际项目中运用Struts2进行CRUD操作,同时也便于理解Struts2的架构和工作流程。通过学习和研究这个DEMO,开发者能够更好地掌握Struts2框架,提升Java ...
Struts2、Hibernate和CRUD(Create, Read, Update, Delete)是Java Web开发中的核心框架和技术,而ExtJS则是一种流行的JavaScript库,用于构建富客户端应用。这个"Struts2+Hibernate+Crud+For_Extjs用户管理程序"是...