第06章 Struts 2的其他应用s

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第6章Struts2的其他应用6.1Struts2的文件上传6.2Struts2的文件下载6.3Struts2的国际化应用6.1Struts2的文件上传6.1.1单文件上传实现Struts2上传单个文件的功能其实非常简单,只要使用普通的Action即可。但为了获得一些上传文件的信息,如上传文件名等,就需要按照一定规则来为Action类增加一些getter和setter方法。下面举例说明如何实现文件上传并说明需要注意的步骤。首先,把要上传的文件放在指定的文件夹下(“D:/upload”,也可以放在其他文件夹或者放到项目的某个文件夹下),本例是放在D盘中建立的“upload”文件夹下。6.1.1单文件上传1.修改index.jsp在创建项目的时候,在项目的WebRoot下会自动生成一个index.jsp文件,读者可以应用该文件修改其中的内容,也可以自己建立JSP文件,这里是使用该index.jsp文件,修改其中的内容。代码实现为:%@pagelanguage=javapageEncoding=utf-8%%@tagliburi=/struts-tagsprefix=s%!DOCTYPEHTMLPUBLIC-//W3C//DTDHTML4.01Transitional//ENhtmlheadtitle文件上传/title/headbodys:formaction=upload.actionmethod=postenctype=multipart/form-datas:filename=uploadlabel=上传的文件/s:files:submitvalue=上传/s:submit/s:form/body/html6.1.1单文件上传2.编写Action类前面已经介绍过,功能的处理一般都在Action类中实现;处理完成后,进行跳转。该Action类完成文件的上传工作,在src下建立包action,在该包下建立自定义Action类UploadAction。该类的实现代码。6.1.1单文件上传3.struts.xml文件struts.xml是Struts2应用中必不可少的文件,它是从页面通向Action类的桥梁,配置了该文件后,JSP文件的请求才能顺利地找到要处理请求的Action类。代码如下:?xmlversion=1.0encoding=UTF-8?!DOCTYPEstrutsPUBLIC-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.0//EN=defaultextends=struts-defaultactionname=uploadclass=action.UploadActionresultname=success/success.jsp/result/action/package/struts6.1.1单文件上传4.建立success.jsp上传成功后,跳转到成功页面。代码如下:%@pagelanguage=javapageEncoding=utf-8%!DOCTYPEHTMLPUBLIC-//W3C//DTDHTML4.01Transitional//ENhtmlheadtitle成功页面/title/headbody恭喜你!上传成功!/body/html6.1.1单文件上传5.部署运行部署项目,启动Tomcat,在浏览器中输入“”,出现如图6.1所示的界面,选择要上传的文件,单击“上传”按钮,就会跳转到如图6.2所示的界面。打开D盘,在upload文件夹下可以找到该上传的文件。图6.1运行界面图6.2成功界面6.1.2多文件上传下面在上传单文件示例的基础上进行修改,介绍如何实现多文件上传。修改index.jsp:%@pagelanguage=javapageEncoding=utf-8%%@tagliburi=/struts-tagsprefix=s%!DOCTYPEHTMLPUBLIC-//W3C//DTDHTML4.01Transitional//ENhtmlheadtitle文件上传/title/headbodys:formaction=upload.actionmethod=postenctype=multipart/form-data!--这里上传三个文件,这里可以是任意多个--s:filename=uploadlabel=上传的文件一/s:files:filename=uploadlabel=上传的文件二/s:files:filename=uploadlabel=上传的文件三/s:files:submitvalue=上传/s:submit/s:form/body/html6.1.2多文件上传注意:它们的名字必须相同,这样取值时会把它们对应的值都封装到指定的List中。页面修改完成后,就可以修改对应的Action了。代码修改。6.2Struts2的文件下载对于一个以西欧字符命名的文件,其下载只需在代码中用超链接指向要下载的文件即可。例如要下载一个名为“example.rar”的文件,只需在页面用超链接指向该文件的路径:ahref=image/example.rar下载/a//表明要下载的是在image文件夹下的example.rar文件如果要下载的文件是以非西欧字符命名的,就不能这样做了。例如要下载的文件名为“实例.rar”,利用上面的方法就会报错。Struts2提供了解决的办法:在页面实现一个超链接,该超链接指向一个Action请求,然后在对应的Action类中进行一些属性的处理后直接返回“SUCCESS”,最后在action配置的result中用param配置参数完成文件的下载。下面先介绍这些参数。inputName:该参数用于指定Action类中作为输入流的属性名。contentType:该参数用于指定下载文件的类型。如果指定该参数,当下载一个图片类型时会直接在浏览器上打开;若不配置,则会直接下载到硬盘上。contentDisposition:该参数用于指定下载文件在客户端上的一些属性。例如可以设置保存的文件名,该文件名加入后缀名,并且为西欧字符;如果设置为中文,有可能出现乱码。6.2Struts2的文件下载bufferSize:该参数用于指定下载文件时缓冲区的大小。下面举例说明其具体用法。首先创建一个项目,项目名为“StrutsDownload”,然后加载Struts2类库,修改web.xml文件。在项目的WebRoot下建立一个image文件夹,在该文件夹中放入一个文件“实例.rar”,用于该例下载之用。index.jsp修改为:%@pagelanguage=javapageEncoding=UTF-8%!DOCTYPEHTMLPUBLIC-//W3C//DTDHTML4.01Transitional//ENhtmlheadtitleMyJSP'index.jsp'startingpage/title/headbodyahref=download.action下载/a/body/htmlAction类DownloadAction.java代码实现为。文件下载最重要的工作就是在配置文件中进行配置,下面看其struts.xml文件。6.3Struts2的国际化应用6.3.1应用国际化的准备工作Struts2的国际化资源文件都是“*.properties”文件,而且该文件需要放在项目的classses文件夹下,也就是和“struts.xml”文件处于同一位置。就命名规则而言,国际化资源文件必须命名为“基本名称_语言代码_国家代码.properties”,例如中文的国际化资源文件应命名为:基本名称_zh_CN.properties而英文国际化资源文件应命名为:基本名称_en_US.properties6.3.1应用国际化的准备工作国际化资源内容的格式为“key=value”,其中key可以根据程序员自己的喜好来命名,但一般程序员都会命名为容易理解的或容易记忆的名称,而value值则是该key对应的值,不同国家语言对应的该值是不同的。例如,英文对应:login=login中文对应:login=\u767b\u5f55看到这里,读者可能有点迷惑,按常理来说,中文对应的登录应该是:login=登录6.3.1应用国际化的准备工作原因是中文是非西欧文字,程序不能解析,所以在应用非西欧文字时,就必须为其转码,在JDK的bin目录下有一个native2ascii.exe文件就是用来对中文进行转码的,运行该文件,输入“登录”,然后回车,就会出现转码后的值,如图6.3所示。图6.3利用native2ascii转换信息6.3.1应用国际化的准备工作读者可以发现,这样做虽然可以转码,但是一次只能转换一条信息,如果有“message_temp.properties”文件:selectLanguage=请选择语言chinese=中文english=英文loginView=登录界面XH=学号KL=口令login=登录6.3.1应用国际化的准备工作当需要对这个文件进行转码时,如果应用上面的方法难免有些麻烦,这时就需要应用批量转换方法。把该文件放入C盘根目录下,然后进入DOS界面(依次单击“开始”→“运行”,输入“cmd”,单击“确定”,进入DOS界面),在命令行输入“native2asciic:/message_temp.propertiesc:/message_zh_CN.properties”,然后回车,如图6.4所示。完成后会在C盘的根目录下出现一个名为“message_zh_CN.properties”的文件,其内容为:图6.4利用native2ascii批量转换信息6.3.1应用国际化的准备工作selectLanguage=\u8bf7\u9009\u62e9\u8bed\u8a00chinese=\u4e2d\u6587english=\u82f1\u6587loginView=\u767b\u5f55\u754c\u9762XH=\u5b66\u53f7KL=\u53e3\u4ee4login=\u767b\u5f556.3.1应用国际化的准备工作ResourceBundleEditor是一个用于编辑本地化的属性文件(localizedpropertiesfiles)。我们可以很方便地在里面写中文信息,它会自动转换为UTF-8编码的信息。它让程序员通过一个屏幕就能够同时管理所有相关联属性文件中的key/value信息。它所具有的功能包括:自动为Keys分类,能够提示丢失掉的、重复的、相似的values等。1.下载ResourceBundleEditor插件在“”网址下载“ResourceBundleEditor”插件,下载后文件名为“ResourceBundleEditor_v0.7.7.zip”压缩文件。2.安装ResourceBundleEditor插件解压缩“ResourceBundleEditor_v0.7.7.zip”文件到当前目录,可以得到一个plugins文件夹,复制或者剪切该plugins文件夹到Eclipse安装目录下,覆盖原来的plugins目录即可。如果已经启动Eclipse,则需要重新启动Eclipse,方可使用Reso

1 / 30
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功