`
convertto
  • 浏览: 121847 次
  • 性别: 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高级实战进阶

    传智播客的struts高级实战进阶 MVC模式的回顾 回顾Struts的请求处理时序图 使用超连接的技巧 封装Formbean数据时的问题 防止表单重复提交 使用复选框的技巧 使用下拉列表框的技巧 文件上传 DispatchAction的应用 ...

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

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

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

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

    Struts2高级应用

    Struts2Ajax刷新,验证框架,国际化详解。

    Struts的高级应用

    这是我平时学习收集的学习资料,希望能为各位带来方便。

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

    Java高级应用包含了Java的IO、泛型、反射等技术,Struts2为Web开发增添了更多的色彩,他为前台和后台数据交互提供了更多的方便

    struts的教程.doc

    Struts高级特性(Struts Advanced Feature) 17 验证 17 使用异常处理声明 19 使用应用模块(Application Modules) 21 把JSP放到WEB-INF后以保护JSP源代码 22 使用 Prebuilt Action类提升开发效率 23 Struts...

    java Struts教程

    Struts高级特性(Struts Advanced Feature) 17 验证 17 使用异常处理声明 19 使用应用模块(Application Modules) 21 把JSP放到WEB-INF后以保护JSP源代码 22 使用 Prebuilt Action类提升开发效率 23 Struts标记库 ...

    java web整合开发王者归来光盘代码-Struts2.x 概述、高级应用

    java web整合开发王者归来光盘代码-第16、17章 Struts2.x 概述、Struts2.x 高级应用 两章 (JSP+Servlet+Struts+Hibernate+Spring)

    Jakarta Struts编程(中英文双版版电子书part1)

    虽然它由Struts应用程序的基础开始并深入讲解了Model 2设计方案,但这本书很快转入了较高级的主题。安装和设置贯穿文档始终,并且清楚地解释了每个配置选项。本书利用大量使用了标准JSP标记库和Struts附加程序的实际...

    Struts2 in action中文版

    8.1.1 页面上:如何使用自定义结果组件构建Struts 2 Ajax应用程序 171 8.1.2 实现JSON结果类型 173 8.2 常用的结果类型 180 8.2.1 RequestDispatcher,也叫做dispatcher 180 8.2.2 ServletRedirectResult,也叫做...

    Jakarta+Struts+编程[扫描版][中文]

    虽然它由Struts应用程序的基础开始并深入讲解了Model 2设计方案,但这本书很快转入了较高级的主题。安装和设置贯穿文档始终,并且清楚地解释了每个配置选项。本书利用大量使用了标准JSP标记库和Struts附加程序的实际...

    struts 教程 很好很详细

    Struts高级特性(Struts Advanced Feature) 17 验证 17 使用异常处理声明 19 使用应用模块(Application Modules) 21 把JSP放到WEB-INF后以保护JSP源代码 22 使用 Prebuilt Action类提升开发效率 23 Struts标记库 ...

    Struts网络编程例学与实践 源码

    第8-11章是Struts比较高级的内容,包括Struts自定义标签、Struts校验机制、Struts国际化方法和Struts的Tickes组件;第12章是一个完整实例,结合Eclipse、Ant等内容,搭建了一个真实的开发环境和实际的应用。 本书在...

    struts2讲义_吴峻申

    10.2 sitemesh高级应用 198 10.2.1 和标签的使用介绍 198 10.2.2 、和标签的使用介绍 200 附录 204 附录1 安装JBoss让它部署Web项目 204 F1.1 安装 204 F1.2 手工部署Web项目 207 附录2 Mysql数据库使用和创建Web...

    搞定J2EE核心技术与企业应用:Ajax,JSP,Struts2,Spring,Hibernate,完整扫描版

    网络评论:这书真的是我感觉特烂的一本书了,目录看... 《搞定j2ee核心技术与企业应用:ajax,jsp,struts 2,spring,hibernate》适用于初、中、高级软件设计人员阅读,同时也可用做高校相关专业和社会培训班的教材。

    struts 入门教程

    Struts高级特性(Struts Advanced Feature) 17 验证 17 使用异常处理声明 19 使用应用模块(Application Modules) 21 把JSP放到WEB-INF后以保护JSP源代码 22 使用 Prebuilt Action类提升开发效率 23 Struts标记库 ...

Global site tag (gtag.js) - Google Analytics