在类上配置@Result(name="ok",location="/upload/ok.jsp"),程序会自动转向到webRoot/upload/ok.jsp页面
示例代码:
@Result(name="ok",location="/upload/ok.jsp")
public class TestAction extends ActionSupport {
public String MyMethod() throws Exception {
....
return "ok";
}
}
项目代码:
package com.zdfd.elec.action.upload;
import java.io.File;
import java.io.PrintWriter;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.abin.core.service.GenericService;
import org.apache.struts2.ServletActionContext;
import org.apache.struts2.convention.annotation.InterceptorRef;
import org.apache.struts2.convention.annotation.InterceptorRefs;
import org.apache.struts2.convention.annotation.Result;
import com.opensymphony.xwork2.Preparable;
import com.zdfd.elec.action.BaseAction;
import com.zdfd.elec.upload.UploadFile;
import com.zdfd.elec.upload.UploadManager;
@InterceptorRefs(value = { @InterceptorRef("myFileUploadStack")})
@Result(name="download",location="/download/download.jsp")
@SuppressWarnings("unchecked")
public class UploadAction extends BaseAction implements Preparable {
private static final long serialVersionUID = 1L;
private UploadManager uploadManager;
private GenericService genericService;
private int newGroupId;
private File[] upload;
private String[] uploadFileName;
String groupId = null;
public UploadManager getUploadManager() {
return uploadManager;
}
public void setUploadManager(UploadManager uploadManager) {
this.uploadManager = uploadManager;
}
/**
* 上传文件
* @return
* @throws Exception
*/
public String doUpload() throws Exception {
String groupId = ServletActionContext.getRequest().getParameter("id");
String flag = groupId;
try {
if (upload != null) {
for (int i = 0; i < upload.length; i++) {
File file = uploadManager.uploadFile(upload[i],uploadFileName[i]);
UploadFile uploadFile = new UploadFile();
uploadFile.setFileName(file.getName());
uploadFile.setRealName(uploadFileName[i]);
uploadFile.setSavePath(file.getAbsolutePath());
uploadFile.setUploadTime(new Date());
if ("".equals(groupId) || groupId==null) {
groupId = newGroupId + "";
}
uploadFile.setGroupId(Integer.valueOf(groupId));
String extName = getExt(uploadFileName[i]);
if (extName!=null && !"".equalsIgnoreCase(extName)) {
if (".doc".equalsIgnoreCase(extName)) {
uploadFile.setIcon("/images/doc.gif");
} else if(".txt".equalsIgnoreCase(extName)) {
uploadFile.setIcon("/images/txt.gif");
} else if(".rar".equalsIgnoreCase(extName) || ".zip".equalsIgnoreCase(extName)) {
uploadFile.setIcon("/images/rar.gif");
} else if(".ppt".equalsIgnoreCase(extName)) {
uploadFile.setIcon("/images/ppt.gif");
} else if(".pdf".equalsIgnoreCase(extName)) {
uploadFile.setIcon("/images/pdf.gif");
} else if(".xls".equalsIgnoreCase(extName)) {
uploadFile.setIcon("/images/excel.bmp");
} else if(".jpg".equalsIgnoreCase(extName) || ".jpeg".equalsIgnoreCase(extName)) {
uploadFile.setIcon("/images/jpg.jpg");
} else {
uploadFile.setIcon("/images/file.gif");
}
}
insertDB(uploadFile);
}
ServletActionContext.getResponse().setContentType("text/html; charset=UTF-8"); // 转码
PrintWriter out = ServletActionContext.getResponse().getWriter();
out.flush();
out.println("<script>");
out.println("alert('上传成功!')");
out.println("</script>");
}
} catch (Exception e) {
e.printStackTrace();
return upload_fail();
}
if ("".equals(flag) || flag==null) {
return upload_ok();
} else {
String searchTemplate = "FROM UploadFile uploadFile WHERE 1=1 AND groupId=" + groupId;
Map<String,Object> map = new HashMap<String,Object>();
List<UploadFile> list = (List<UploadFile>) genericService.searchForList(searchTemplate, map);
ServletActionContext.getRequest().setAttribute("result", list);
ServletActionContext.getRequest().setAttribute("groupId", groupId);
return "download";
}
}
/**
* 取得文件扩展名
* @param str
* @return
*/
public String getExt(String str){ //获得文件的后缀名
String subStr=str.substring(str.lastIndexOf("."));
return subStr;
}
/**
* 上传成功 ,转到成功页面
*
* @return
*/
public String upload_ok() {
ServletActionContext.getRequest().setAttribute("newGroupId", newGroupId);
return "upload_ok";
}
/**
* 获得组ID
* @return
*/
private int getGroupId() {
String sql = "select max(groupId) from tbl_attrfile";
int result = genericService.queryForInt(sql, Integer.class);
result ++;
return result;
}
/**
* 添加到数据库
*
* @param file
*/
private void insertDB(UploadFile uploadFile) {
genericService.saveOrUpdate(uploadFile);
}
/**
* 上传失败,转到错误页面
*
* @return
*/
public String upload_fail() {
return "upload_fail";
}
@Override
public String execute() throws Exception {
/* groupId = ServletActionContext.getRequest().getParameter("id");
if ("".equals(groupId)) {
groupId = getGroupId() + "";
}*/
return SUCCESS;
}
public GenericService getGenericService() {
return genericService;
}
public void setGenericService(GenericService genericService) {
this.genericService = genericService;
}
@Override
public void prepare() throws Exception {
newGroupId = getGroupId();
}
public File[] getUpload() {
return upload;
}
public void setUpload(File[] upload) {
this.upload = upload;
}
public String[] getUploadFileName() {
return uploadFileName;
}
public void setUploadFileName(String[] uploadFileName) {
this.uploadFileName = uploadFileName;
}
}