[IT认证]struts1x第五次课V.ppt_第1页
[IT认证]struts1x第五次课V.ppt_第2页
[IT认证]struts1x第五次课V.ppt_第3页
[IT认证]struts1x第五次课V.ppt_第4页
[IT认证]struts1x第五次课V.ppt_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第五章,Struts的国际化与Validator验证框架 及上传下载,课程内容,Struts的国际化 Validator验证框架 Struts1.x文件的上传下载,Struts对国际化的支持,随着互联网的迅速发展,越来越多的网站投身于国际市场。这使得网站在语言方面的支持必须能够满足国际化的需求。 我们将学习Struts对国际化的支持,主要介绍java.util.Locale类与创建Struts资源文件(Resource Bundle)。,1创建Locale对象,java.util.Locale类用于Java语言对国际化与本地化的支持。一个Locale对象描述了一个特定地理位置的、政治的和文化的语言环境。 一个要求Locale执行的任务操作是语言环境敏感的,它使用Locale来为用户裁剪信息。,Locale类两种构造方式,Locale(String language, String country): 这种构造方式的第一个参数对应的是ISO语言代码,它是ISO-639规范定义的两个小写字母代码。 第二个参数对应的是ISO国家代码。它是ISO-639规范定义的两个大写字母代码。例如下面创建的Locale对象表示是中国的: Locale locale=new Locale(“ch“,“CH“); Locale(String language, String country, String variant): 这种构造方法需要第三个参数Variant,该参数的代码是由供应商和浏览器指定的。 例如:WIN代表Windows,MAC代表Macintosh,POSIX代表POSIX等。,2在Web应用中访问Locale对象,在Web应用开发中,不必要使用“new”运算符或使用静态常量来获得Locale对象。 在Web应用程序中,可以使用HttpServletRequest对象的两种方法获得Locale实例,参考代码如下: HttpServletRequest request; Locale oneLocale=request.getLocale(); /-(1) Locale allLocale=request.getLocales(); /-(2),这两种方法都能访问HTTP请求中的Accept-Language报头信息。 第一种方法返回客户优先使用的Locale,如果客户没有配置任何Locale,则返回默认的Locale。 而第二种方法返回的是一个枚举(Enumeration)集合对象,它包含了按优先级降序排列的所有Locale对象。,创建Struts的资源文件,当在Struts配置文件中,将元素的locale属性设置为true时,Struts框架就会根据这一Locale实例从Resource Bundle中选择合适的资源文件。 例如,如果用户使用的浏览器的首选Locale为中文时,Struts框架将返回ApplicationResources_zh_CN.properties或ApplicationResources_perties资源文件中的信息给用户。 它对应的资源文件名应为: ApplicationRperties,国际化插件下载,Myeclipse6.5:复制提供的jar Myeclipse8.6 在线更新 properties editor 国际化演示,Validator验证框架,Validator框架介绍,Validator框架被集成到Struts框架中,专门负责对数据进行验证。主要为以下两个jar包:, jakarta-oro.jar:提供了一组处理文本的类,具有文本替换、过滤和分割等功能。 commons-validator.jar:提供了一个简单、可扩展的验证框架,包含了通用的验证方法和验证规则。,Validator验证框架,引入struts支持就有,第一步,在WEB-INF下建规则,其实就是一个validator.xml文档,将validator-rules.xml的dtd声明及元素复制过去,并自己定义。,第二步,在WEB-INF下建规则,其实就是一个validator.xml文档,将validator-rules.xml的dtd声明及元素复制过去,并自己定义。,第三步,建一个带动态DynaActionFrom:工程上右击newotherAction. .struts1.2Form 如果不用动态Fom就必须继承ValidatorForm,加两个属性 struts-config.xml如下:,将自定义的validate.xml引入 新建struts 1.2,点击finish完成 struts-config.xml如下,/WEB-INF/validator-rules.xml,/WEB-INF/validator.xml,属性文件配置如下,jsp页面如下,alert式,注意: 这里的demoForm为ActionForm名:demoForm onsubmit=“ return validateDemoForm(this)“ 哪么return后面的名字则这样写:validateDemoFrom 详见word文档,Struts实现文件上传与下载功能,实现文件上传,标签必须嵌套在中才有效,而且必须注意以下几点:,(1)标签的property属性是必须的,而且属性值必须与ActionForm bean中的属性名一致。 (2)标签必须将“method”属性设置为“post”。 (3)标签的编码类型“enctype”属性必须设置为“multipart/form-data”。,Struts的标签可以创建上传文件的页面控件,它的实现代码如下: ,request. setCharacterEncoding(“gbk”); /struts1.x上传文件名乱码 ModuleConfig ac = (ModuleConfig)request.getAttribute(“org.apache.struts.action.MODULE“); DiskFileUpload upload = new DiskFileUpload(); upload.setHeaderEncoding(“gbk“); UpLoadForm upLoadForm = (UpLoadForm)form; FormFile file = upLoadForm.getFile(); if(file=null) mapping.findForward(“upload“); String fileName= file.getFileName(); String fileSize = String.valueOf(file.getFileSize(); InputStream inputStream = file.getInputStream(); String dir = this.getServlet().getServletContext().getRealPath(“/upfile“); OutputStream outputStream = new FileOutputStream(dir+“/“+fileName); int bytesRead=0; byte buffer = new byte1024; while(bytesRead=inputStream.read(buffer, 0, 1024)!=-1) System.out.println(bytesRead+“=“); outputStream.write(buffer, 0, bytesRead); ,对于文件的上传功能,Struts提供了FormFile接口。 Struts在处理客户端请求的时候,可以直接将客户端提交的文件信息转化为FormFile对象的实现类,这样在Action中就可以像操作本地文件一样操作客户端所传递的文件信息了。,实现文件下载,在本项目中,实现文件上传功能后,我们又实现了文件的下载功能。 在JSP页面中,我们可以嵌入java代码段实现显示服务器端某个文件夹下所有的文件。 获取可以下载的文件信息后,我们就可以给每个文件挂上超链接,并将文件信息传递给Action处理,以下是该功能的实现代码:,“ +myfilei.getName()+“); %,/ 解决文件问题 String fileName = new String(request.getParameter(“fileName“).getBytes( “iso-8859-1“), “gbk“); response.reset(); if(!fileName.equals(“) /得到文件路径 String path = request.getRealPath(“/“)+“upfile“+fileName; /设置文件头部为下载 response.setHeader(“Content-disposition“, “attachment;filename=“+fileName);,BufferedInputStream inputStream = new BufferedInputStream(new FileInputStream(path); byte buffer = new byte1024; OutputStream outputStream = response.getOutputStream(); int length=0; whi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论