package org.beanfuse.webapp.doc.action;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang.StringUtils;
import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.struts2.interceptor.ServletResponseAware;
import org.beanfuse.struts2.action.BaseAction;
import org.beanfuse.utils.web.DownloadHelper;
import org.beanfuse.webapp.doc.service.StaticDocLoader;
/**
*
* 静态资源下载
*
* @author chaostone
*
*/
public class StaticDownloadAction extends BaseAction implements ServletRequestAware,
ServletResponseAware {
private List<StaticDocLoader> loaders = new ArrayList();
private HttpServletRequest request;
private HttpServletResponse response;
public String index() throws Exception {
String name = get("file");
String displayName = get("display");
URL url = null;
if (StringUtils.isNotEmpty(name)) {
for (StaticDocLoader loader : loaders) {
url = loader.getFile(name);
if (null != url) {
break;
}
}
if (null != url) {
DownloadHelper.download(request, response, url, displayName);
}
}
if (null == url) {
return "nofound";
} else {
return null;
}
}
public void setServletResponse(HttpServletResponse resp) {
this.response = resp;
}
public void setServletRequest(HttpServletRequest req) {
this.request = req;
}
public List<StaticDocLoader> getLoaders() {
return loaders;
}
public void setLoaders(List<StaticDocLoader> loaders) {
this.loaders = loaders;
}
}