java struts2 (注解方式) 文件下载
来源:互联网 发布:西古德森数据 编辑:程序博客网 时间:2024/06/06 00:59
package com.jshop.action;
import java.io.FileInputStream;
import java.io.File;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.ParentPackage;
import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.ServletActionContext;
import org.apache.struts2.json.annotations.JSON;
import org.springframework.stereotype.Controller;
import com.jshop.action.tools.BaseTools;
import com.jshop.action.tools.Validate;
import com.jshop.dao.sqlite.SQLiteDBHelper;
import com.jshop.entity.ArticleT;
import com.jshop.service.ArticleTService;
import com.opensymphony.xwork2.ActionSupport;
@ParentPackage("jshop")
@Controller("fileDownloadAction")
@Action(value="download",results={@Result(name = "success", type = "stream", params = { "contentType",
"application/octet-stream;charset=ISO8859-1", "inputName",
"inputStream", "contentDisposition",
"attachment;filename=${downloadFileName}", "bufferSize", "4096" })})
public class FileDownloadAction extends ActionSupport {
/**
*
*/
private static final long serialVersionUID = 1L;
private final static String DOWNLOADPATH="PDF";
// private String fileName;// 初始的通过param指定的文件名属性
private ArticleTService articleTService;
private String articleid;
private String contentvalue;
private String dbmanagemernt;
private ArticleT bean = new ArticleT();
private SQLiteDBHelper db=new SQLiteDBHelper();
private String fileName;
public String getContentvalue() {
return contentvalue;
}
public void setContentvalue(String contentvalue) {
this.contentvalue = contentvalue;
}
@JSON(serialize = false)
public ArticleTService getArticleTService() {
return articleTService;
}
public void setArticleTService(ArticleTService articleTService) {
this.articleTService = articleTService;
}
public String getArticleid() {
return articleid;
}
public void setArticleid(String articleid) {
this.articleid = articleid;
}
public void setFileName(String fileName) {
this.fileName = fileName;
}
public String getDbmanagemernt() {
return dbmanagemernt;
}
public void setDbmanagemernt(String dbmanagemernt) {
this.dbmanagemernt = dbmanagemernt;
}
public InputStream getInputStream() throws Exception {
try {
if(Validate.StrNotNull(this.getArticleid())){
bean=this.getArticleTService().findArticleByarticleid(this.getArticleid().trim());
fileName=bean.getTitle()+".PDF";//文件名
return new FileInputStream(ServletActionContext.getServletContext().getRealPath("")+"/PDF/"+fileName);
}else if(Validate.StrNotNull(this.getDbmanagemernt())){
fileName="general.sql";
return new FileInputStream(ServletActionContext.getServletContext().getRealPath("")+"/backupDatabase/"+fileName);
}else{
try {
fileName="jshopmactive.db";
// String path=ServletActionContext.getServletContext().getRealPath("")+"/sqliteDB/"+fileName;
// File f= new File(path);
// if(!f.exists()){
return new FileInputStream(ServletActionContext.getServletContext().getRealPath("")+"/sqliteDB/"+fileName);
// }else{
// return new FileInputStream(path);
// }
} catch (Exception e) {
throw e;
}
}
} catch (Exception e) {
throw e;
}
// return null;
}
public String execute() throws Exception {
return SUCCESS;
}
/** 提供转换编码后的供下载用的文件名 */
public String getDownloadFileName() {
String downFileName = fileName;
try {
downFileName = new String(downFileName.getBytes(), "ISO8859-1");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return downFileName;
}
}
这里调用的是struts2 内部的下载机制,运用的是struts2 注解方式。注解方式,是将整个class 作为一个Action 供前台调用。
import java.io.FileInputStream;
import java.io.File;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.ParentPackage;
import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.ServletActionContext;
import org.apache.struts2.json.annotations.JSON;
import org.springframework.stereotype.Controller;
import com.jshop.action.tools.BaseTools;
import com.jshop.action.tools.Validate;
import com.jshop.dao.sqlite.SQLiteDBHelper;
import com.jshop.entity.ArticleT;
import com.jshop.service.ArticleTService;
import com.opensymphony.xwork2.ActionSupport;
@ParentPackage("jshop")
@Controller("fileDownloadAction")
@Action(value="download",results={@Result(name = "success", type = "stream", params = { "contentType",
"application/octet-stream;charset=ISO8859-1", "inputName",
"inputStream", "contentDisposition",
"attachment;filename=${downloadFileName}", "bufferSize", "4096" })})
public class FileDownloadAction extends ActionSupport {
/**
*
*/
private static final long serialVersionUID = 1L;
private final static String DOWNLOADPATH="PDF";
// private String fileName;// 初始的通过param指定的文件名属性
private ArticleTService articleTService;
private String articleid;
private String contentvalue;
private String dbmanagemernt;
private ArticleT bean = new ArticleT();
private SQLiteDBHelper db=new SQLiteDBHelper();
private String fileName;
public String getContentvalue() {
return contentvalue;
}
public void setContentvalue(String contentvalue) {
this.contentvalue = contentvalue;
}
@JSON(serialize = false)
public ArticleTService getArticleTService() {
return articleTService;
}
public void setArticleTService(ArticleTService articleTService) {
this.articleTService = articleTService;
}
public String getArticleid() {
return articleid;
}
public void setArticleid(String articleid) {
this.articleid = articleid;
}
public void setFileName(String fileName) {
this.fileName = fileName;
}
public String getDbmanagemernt() {
return dbmanagemernt;
}
public void setDbmanagemernt(String dbmanagemernt) {
this.dbmanagemernt = dbmanagemernt;
}
public InputStream getInputStream() throws Exception {
try {
if(Validate.StrNotNull(this.getArticleid())){
bean=this.getArticleTService().findArticleByarticleid(this.getArticleid().trim());
fileName=bean.getTitle()+".PDF";//文件名
return new FileInputStream(ServletActionContext.getServletContext().getRealPath("")+"/PDF/"+fileName);
}else if(Validate.StrNotNull(this.getDbmanagemernt())){
fileName="general.sql";
return new FileInputStream(ServletActionContext.getServletContext().getRealPath("")+"/backupDatabase/"+fileName);
}else{
try {
fileName="jshopmactive.db";
// String path=ServletActionContext.getServletContext().getRealPath("")+"/sqliteDB/"+fileName;
// File f= new File(path);
// if(!f.exists()){
return new FileInputStream(ServletActionContext.getServletContext().getRealPath("")+"/sqliteDB/"+fileName);
// }else{
// return new FileInputStream(path);
// }
} catch (Exception e) {
throw e;
}
}
} catch (Exception e) {
throw e;
}
// return null;
}
public String execute() throws Exception {
return SUCCESS;
}
/** 提供转换编码后的供下载用的文件名 */
public String getDownloadFileName() {
String downFileName = fileName;
try {
downFileName = new String(downFileName.getBytes(), "ISO8859-1");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return downFileName;
}
}
这里调用的是struts2 内部的下载机制,运用的是struts2 注解方式。注解方式,是将整个class 作为一个Action 供前台调用。
- java struts2 (注解方式) 文件下载
- struts2注解方式文件下载
- Struts2实现文件下载(使用注解的方式)
- Struts2使用注解方式下载文件
- struts2注解方式文件下载,文件名有空格解决方式。
- struts2 文件下载方式
- ssi 文件下载(注解方式)
- struts2注解实现文件下载
- struts2文件下载 注解版
- struts2 下载文件 打开方式
- struts2文件下载之注解方式和文件不存在的处理方法
- struts2文件下载之注解方式和文件不存在的处理方法
- Java Struts2下载文件
- struts2利用注解完成文件下载
- spring实现注解方式下载文件
- struts2下载文件时两种实现方式
- Struts2用action方式实现文件下载
- struts2+hibernate+ehcache二级缓存(注解方式)
- sql 同数据库拷贝
- 使用ScheduledThreadPoolExecutor代替Timer&TimerTask
- flex AdvancedDataGrid实现右键内容复制
- Android--手势触控屏幕控制/GestureDetector
- poj 2503 Babelfish(二分)
- java struts2 (注解方式) 文件下载
- scons gtk
- erlang的Socket参数含义
- Java关键字和保留字
- ASCII,Unicode和UTF-8 区别与联系
- Android提交数据到服务器的两种方式四种方法
- Hello Python
- mysql 安装 sh
- 关于指针代替数组