`
convertto
  • 浏览: 124923 次
  • 性别: Icon_minigender_1
  • 来自: 长春
社区版块
存档分类
最新评论

Stuts高级应用

阅读更多

Struts的国际化
本地化和国际化的概念
Java对国际化的支持
Struts框架对国际化的支持

本地化和国际化的概念
在过去,软件开发者在开发应用程序时,将注意力集中于实现具体的业务逻辑。软件面向的用户群是固定的,软件只需要支持一种语言。如今,随着跨国业务的迅猛发展,需要同一个软件同时支持多种语言和国家。
国际化[Internationalization](简称为I18N)指的是在软件设计阶段,就应该使软件具有支持多种语言和地区的功能。软件的本地化与国际化的区别如下图:


Java对国际化的支持

Locale类
java.util.Locale类是最重要的Java国际化类,在Java语言中,几乎所有对国际化和本地化的支持都依赖于这个类。Locale类的实例代表一个特定的语言和地区。
ResourceBundle类
java.util.ResourceBundle类提供存放和管理与Locale相关的资源的功能。这些资源包括按钮上的文字、状态信息、图片名、错误信息和网页标题等。
ApplicationResources_en.properties
hello=Hello World!
ApplicationResources_zh_CN.properties
hello=你好,世界!

<html:form action="/selectLocale">
<html:select property="locale">
<html:option value="en">英文</html:option>
<html:option value="zh_CN">中文</html:option>
</html:select>
<html:submit>go</html:submit>
</html:form><hr>
<bean:message key="hello" />

SelectLocaleForm selectLocaleForm = (SelectLocaleForm) form;
setLocale(request, new Locale(selectLocaleForm.getLocale()));
return mapping.getInputForward();

Struts实现文件上传
举例:
ActionForm
package form;

import org.apache.struts.action.ActionForm;
import org.apache.struts.upload.FormFile;

public class UploadForm extends ActionForm {
private FormFile file;
private int size;
private String name;
public FormFile getFile() {
return file;
}
public void setFile(FormFile file) {
this.file = file;
}
……
}

Action里要写的
UploadForm uploadForm = (UploadForm) form;
String dir=servlet.getServletContext().getRealPath("/file");
FormFile file=uploadForm.getFile();
if(file==null){
return mapping.getInputForward();
}
uploadForm.setName(file.getFileName());
uploadForm.setSize(file.getFileSize());
InputStream in=file.getInputStream();
OutputStream out=new FileOutputStream(dir+"/"+uploadForm.getName());
byte[] buf = new byte[1024];
int len = 0;
while ((len = in.read(buf)) > 0) {
out.write(buf, 0, len);
}
out.close();
in.close();
file.destroy();
return mapping.findForward("ok");

JSP
upload.jsp
<html:form action="/upload" enctype="multipart/form-data">
选择文件:<html:file property="file"/><br/>
<html:submit>上传</html:submit>
</html:form>

up_ok.jsp
<logic:notEmpty name="uploadForm" property="name">
<h1>文件上传成功</h1><hr>
文件名称:<bean:write name="uploadForm" property="name"/><br>
文件大小:<bean:write name="uploadForm" property="size"/>字节<br>
<hr>
</logic:notEmpty>
<html:link href="index.jsp">返回</html:link>

struts-config.xml
<struts-config>
<form-beans>
<form-bean name="uploadForm" type="form.UploadForm" />
</form-beans>
<action-mappings>
<action attribute="uploadForm"
input="/upload.jsp"
name="uploadForm"
path="/upload"
scope="request"
type="action.UploadAction"
validate="false">
<forward name="ok" path="/up_ok.jsp" />
</action>
</action-mappings>
</struts-config>

Struts实现文件下载

download.jsp
<%@ page contentType="text/html;charset=gbk"%>
<%@ page import="java.io.File"%>
<html>
<head><title></title></head>
<body>
<%
File file = new File(application.getRealPath("/file"));
String[] fileNames = file.list();
for (int i = 0; i < fileNames.length; i++) {
String fileName=java.net.URLEncoder.encode(fileNames[i],"gbk");
%>
<a href="download.do?fileName=<%=fileName%>"><%=fileNames[i]%></a>
<br>
<%}%>
</body>
</html>
DownloadAction.java
String filename = request.getParameter("fileName");
filename = new String(filename.getBytes("iso_8859_1"), "gbk");
String path = servlet.getServletContext().getRealPath("/") + "file/" + filename;
response.reset();
response.setContentType("application/x-msdownload;charset=gbk");
filename = java.net.URLEncoder.encode(filename, "UTF-8");
response.setHeader("Content-Disposition", "filename=" + filename);
InputStream in = new FileInputStream(path);
OutputStream out = response.getOutputStream();
byte[] buf = new byte[1024];
int len = 0;
while ((len = in.read(buf)) > 0) {
out.write(buf, 0, len);
}
out.close();
in.close();
return null;

struts-config.xml
<struts-config>
<action-mappings>
<action path="/download" type="action.DownloadAction" />
</action-mappings>
</struts-config>

 

分享到:
评论

相关推荐

    第5讲 Struts高级应用.

    第5讲 Struts高级应用.,大学生自学的好文档,欢迎大家来下载

    Struts 2的高级应用

    1、MVC 概述 2、Struts1.x简述 3、Struts2概述 4、编写一个struts2应用程序 5、Struts2的核心配置文件 6、Action的实现 7、拦截器

    Struts的高级应用

    8. **Struts 2的整合**:虽然本话题涉及的是Struts的高级应用,但也要提及Struts 2,它是Struts的升级版,引入了更多特性,如拦截器、OGNL表达式语言和更灵活的配置方式,使得应用更强大且易用。 9. **ActionForm与...

    Struts高级部分(2)(常用Action、验证框架、动态Form)

    Struts是Java Web开发中的一个经典MVC框架,它的出现极大地简化了企业级应用的构建。本篇将深入探讨Struts框架的高级部分,包括常用Action、验证框架以及动态Form,这些都是开发过程中不可或缺的重要概念。 一、...

    Struts2高级应用

    在这个主题中,我们将深入探讨Struts2的高级应用,特别是涉及到Ajax刷新、验证框架和国际化的使用。 **Struts2与Ajax集成** Struts2通过Dojo插件支持Ajax功能,允许开发者创建动态、无需刷新整个页面的应用。以下...

    Java高级框架应用开发案例教程 Struts2+Spring+Hibernate

    Java高级框架应用开发案例教程,主要关注的是Struts2、Spring和Hibernate这三大经典开源框架的整合开发,也称为SSH框架。这些框架是Java企业级应用程序开发中的核心工具,能够帮助开发者实现高效的MVC(Model-View-...

    struts2高级部分

    ### Struts2高级部分知识点详解 #### 一、Struts2框架高级概念解析 ##### 1. 异常处理机制 在Struts2框架中,异常处理是非常重要的一个环节,它能够帮助开发者有效地管理和捕获应用程序运行过程中可能出现的各种...

    Struts2的高级应用,最新 PPT教程

    在Struts2的高级应用中,我们主要关注的是框架提供的更复杂和高效的功能,这些功能能够提升开发效率和应用性能。本章将深入探讨Struts2的类型转换,这是Struts2的一个关键特性,它使得处理Web表单数据变得更加方便。...

    Struts2基础应用二

    在“Struts2基础应用二”中,可能还会涉及一些高级特性,如 strut2 的拦截器编写、自定义结果类型、动态方法调用等,这些都是Struts2进阶使用的关键。对于开发者来说,掌握这些知识点有助于提升项目的可维护性和扩展...

    struts高级实战进阶ppt

    本教程“Struts高级实战进阶”将深入探讨Struts框架的高级特性和实践技巧,帮助开发者提升在实际项目中的应用能力。 首先,我们来了解Struts的核心概念。Struts是一个MVC(Model-View-Controller)框架,它将业务...

    浪曦_Struts2应用开发系列_源代码

    本源代码库包含了多个示例项目,涵盖了Struts2的基本功能到高级特性,如: 1. **Action与Result**:在Struts2中,Action是业务逻辑的载体,Result则是处理Action执行后如何响应用户的逻辑。源代码会展示如何定义...

    struts专业应用.rar

    总结来说,Struts专业应用涵盖了从框架基本概念到高级特性的深入理解和实践,包括但不限于MVC架构的应用、配置文件的管理、拦截器的定制、标签库的使用、与第三方框架的整合、性能调优以及安全防护。对于Java EE...

    Struts高级开发_动态ActionForm.avi

    Struts框架是Java Web开发中的一个经典模型-视图-控制器(MVC)框架,它在Web应用程序设计中起着核心作用。ActionForm是Struts框架中的一个重要组件,主要用于处理用户从视图层提交的数据。在传统的Struts开发中,...

    张孝祥09年struts高级实战进阶PPT

    【Struts高级实战进阶知识点】 Struts是一个基于MVC(Model-View-Controller)模式的Java Web开发框架,它提供了构建动态Web应用程序的强大工具。本篇内容主要围绕张孝祥老师的09年Struts高级实战进阶PPT展开,涵盖...

    浪曦Struts2应用开发系列ppt

    浪曦Struts2应用开发系列PPT是面向初学者和进阶者的学习资源,由讲师风中叶讲解,涵盖了Struts2的基础到高级特性。 **入门及配置** 在Struts2入门阶段,主要涉及的是安装、配置和创建第一个Struts2应用。这包括添加...

    Java高级应用和Struts的入门笔记

    Java高级应用和Struts框架是Java Web开发中的关键部分,它们极大地提升了开发效率和代码的可维护性。这里,我们将深入探讨这些主题,基于提供的文件名称列表,逐一解析每个知识点。 1. **Java高级应用** - **泛型*...

    简单的STRUTS1应用实例

    在实际开发中,Struts1还有更多高级特性,如国际化、拦截器、异常处理等,这些都需要进一步学习和实践才能熟练掌握。不过,这个简单的实例已经为我们打开了Struts1的大门,让我们能够逐步探索和理解这一经典框架的...

    struts小应用事例学习

    同时,你还可以学习如何配置Struts 2,以及如何利用插件实现更高级的功能。 在实际开发中,理解并掌握Struts 2.0的这些核心概念,将有助于你构建高效、可维护的Java Web应用。不断实践和探索,你将成为Struts 2的...

    MyEclipse+Struts基本应用

    MyEclipse是一款强大的Java集成开发环境,特别适合于企业级应用的开发,它集成了多种开发工具,包括代码编辑、调试、部署等...在实际开发中,还需要不断地学习和实践,以便更好地理解和运用Struts框架的各种高级特性。

Global site tag (gtag.js) - Google Analytics