资源预览内容
第1页 / 共23页
第2页 / 共23页
第3页 / 共23页
第4页 / 共23页
第5页 / 共23页
第6页 / 共23页
第7页 / 共23页
第8页 / 共23页
第9页 / 共23页
第10页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第12章 国际化和文件上传 随着网络的高速发展,大部分的Web站点已经走出 国门,迈向世界了。这是站点的访问者也不再仅仅 是本地的浏览者,而是来自于全世界的访客,这时 程序国际化成为了Web站点不可或缺的部分。而文 件的上传也是Web应用中经常要使用的功能。基于 Struts 2的Web应用使国际化开发和文件上传功能都 变得非常简单易用,下面我们就来一起学习这两部 分知识。12.1 JSP页面国际化 要实现JSP页面国际化,首先要添加并配置相应的国 际化资源文件;然后在JSP页面中通过Text标签指定 name参数为相应的Key值,从而实现国际化。JSP页 面国际化主要有两种方式,如图12.1所示。12.1.1 加载全局资源文件实现国际 化 一般情况下,可以将国际化信息放到国际化资源文 件中,然后在struts.xml文件中配置该文件为全局资 源文件。这样就可以在JSP文件中很方便地访问到该 资源文件,从而实现国际化。12.1.2 临时指定资源文件完成国际 化 前面示例中通过在struts.ml文件中进行配置全局资源文件 ,这样的资源文件在每个JSP文件中都可以使用。那如何 才能能使得资源文件不通过struts.xml配置,同样能被JSP 页面调用呢? 我们可以在需要调用国际化资源文件的JSP页面中通过 标签来指定临时资源文件,这样就可以通过指定 key值来找到获得指令的国际化信息了。 注意:为了避免全局资源文件的影响,读者可以先把 struts.xml文件中的配置全局资源文件的代码删除,这样 就可以排除全局资源文件的影响了。12.1.3 为资源文件传递参数 我们可以在Text标签中添加一个标签来传 递参数给资源文件。资源文件可以通过占位符的形 式来接受参数值。修改前面的资源文件,为资源文 件添加占位符。 首先我们修改中文资源文件 jspInterResource_zh_CN.properties,其代码如图12.10 所示。12.1.3 为资源文件传递参数 然后再对英文资源文件 jspInterResource_en_US.properties进行修改,具体代 码如图12.11所示。12.2 Action国际化 Struts 2中的Action实现国际化的方式主要有3种,如 图12.14所示。 下面我们就来介绍这3种加载方式,并对这3中加载 方式的执行顺序加以说明。12.2.1 加载全局资源文件完成国际 化 Action可以通过加载全局资源文件完成国际化。全局 文件必须存放在项目的WEB-INF/classes目录下。我 们首先在src文件夹中完成中文和英文资源文件 GlobalInterResource_zh_CN.properties和 GlobalInterResource_en_US.properties的添加工作。具 体代码如图12.15所示。12.2.1 加载全局资源文件完成国际 化 然后打开struts.xml配置文件,在struts根节点下添加 一个常量节点constant用来配置全局资源文件。具体 代码如图12.16所示。12.2.2 加载包范围资源文件完成国 际化 下面我们来介绍包范围资源文件。包范围资源文件 的好处在于不需要在struts.xml文件中配置。而且不 同包下的Action使用不同的包文件,能够很好的将资 源文件进行归类。包范围资源文件可以也只能被该 包下的Action访问。 包范围资源文件的命名规则如图12.21所示。12.2.2 加载包范围资源文件完成国 际化 然后我们在action包中添加中英文的包范围资源文 件。具体代码如图12.22所示。 打开IE浏览器,在浏览器地址栏中输入 http:/localhost:8080/ch12/showActionMessage.action, 分别在中英文页面上显示运行结果。12.2.3 加载Action范围资源文件完 成国际化 最后我们介绍Action范围资源文件,Action范围资源文件 同样不需要在struts.xml文件中配置。Action范围资源文件 只能被所对应的Action访问,其他Action无法访问。 Action范围资源文件的命名规则如图12.24所示。 Action范围资源文件必须和对应的Action类保存在同目录 下。我们在action包中添加中英文的Action范围资源文 件。 打开IE浏览器,在浏览器地址栏中输入 http:/localhost:8080/ch12/showActionMessage.action,分别 在中英文页面上显示运行结果。12.2.4 资源文件加载顺序 下面我们对这3种资源文件的加载顺序作以说明,如 图12.27所示。12.3 基于Struts 2完成文件上传 Struts 2框架中并没有提供文件上传,而是通过 Common-FileUpload框架或COS框架来实现的。 Struts 2在原有上传框架的基础上进行了进一步的封 装,从而大大简化了文件上传的开发应用。12.3.1 下载并安装Common- FileUpload框架 Common-FileUpload框架是一个非常出色的上传框架 ,由Apache开源组织的jakarta项目组负责组织维护和 更新。为了下载Common-FileUpload框架,我们首先 要访问Apache官方站点:http:/www.apache.org/,在 屏幕下方找到“Commons”链接,并在其众多子项目 中找到FileUpload和IO两个子项目。12.3.1 下载并安装Common- FileUpload框架 FileUpload和IO两个子项目的下载。 下载完成后,等到两个压缩文件包,分别为 commons-fileupload-1.2.2-bin.zip和commons-io-2.4- bin.zip。要安装Common-FileUpload框架,只需将 commons-fileupload-1.2.2-binbin路径下的commons- fileupload-1.2.2.jar库和commons-io-2.4-bin目录下的 commons-io-2.4.jar文件复制到Web应用中的WEB- INFlib目录中就可以了。12.3.2 实现文件上传控制器 要实现文件上传,需要修改设置表单的enctype属 性。默认情况下,这个值为application/x-www-form- urlencoded,这时只能用来提交普通文本,不能用于 文件上传;只有设置为multipart/form-data,才能完 整地传递文件数据并完成文件上传操作。12.3.3 完成文件上传 文件上传控制器创建完成后,需要在struts.xml文件中进 行配置,在配置之前首先要填上上传表单页 fileUploadPage.jsp和上传结果页fileUploadResultPage.jsp。 上传表单页包含一个文件域和两个按钮,其表单提交到 上传文件控制器。 上传结果页,用来显示文件上传结果,包括上传文件的 名称以及类型。 然后我们对struts.xml文件进行配置。 配置完成后,就可以开始上传文件了。打开IE浏览器, 在浏览器地址栏中输入 http:/localhost:8080/ch12/fileUploadPage.jsp。12.3.3 完成文件上传 单击上传按钮完成上传,我们就可以在页面和上传 目录中查看文件信息了。 注意:在文件上传之前,要先在WebRoot文件夹下 创建好上传目录,而且文件上传后并不会保存到 MyEclipse项目中的upload目录下,而是上传到项目 的发布目录中,及Tomcat文件夹下的upload目录中。12.4 多文件上传 文件上传在很多项目中都需要用到,比如博客系 统、论坛系统以及邮件系统等。这些系统通常需要 上传多个文件,单个文件上传已经不能满足要求 了。所以我们就一起来看Struts 2是如何完成多文件 上传的。12.4.1 实现多文件上传控制器 我们在项目中的action文件夹下创建一个多文件上传 控制器SomeFileUploadAction.java,该控制器负责封 装所有上传文件、文件名和文件类型。12.4.2 完成多文件上传 同样,在多文件上传控制器创建完成后,需要在 struts.xml文件中进行配置,在配置之前首先要填上 上传表单页SomeFileUploadPage.jsp和上传结果页 SomeFileUploadResultPage.jsp。 注意:在上传表单中也可以选择上传一个或两个文 件,但是如果一个都不传,就会抛出空指针异常。12.5 小结 本章主要讲述了Struts 2框架关于国际化和文件上传 方面的知识。国际化是Struts 2框架的重要内容,集 中体现了Struts 2框架的普遍应用性,而文件上传又 是一个非常实用的功能。本章的重点是掌握Action实 现国际化的3种方式以及完成文件上传的方法。难点 内容是学会并掌握多文件上传的应用。希望读者多 加练习,争取掌握。
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号