/*
* Generated by MyEclipse Struts
* Template path: templates/java/JavaClass.vtl
*/
package com.sendemails.struts.action;
import java.io.File;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.commons.mail.EmailAttachment;
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.MultiPartEmail;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.DynaActionForm;
/**
* MyEclipse Struts Creation date: 08-11-2008
*
* XDoclet definition:
*
* @struts.action path="/sendemail" name="sendemailForm" input="/sendemail.jsp"
* scope="request" validate="true"
* @struts.action-forward name="success" path="success.jsp"
* @struts.action-forward name="fail" path="fail.jsp"
*/
public class SendemailAction extends Action {
/*
* Generated Methods
*/
/**
* Method execute
*
* @param mapping
* @param form
* @param request
* @param response
* @return ActionForward
*/
private Map<String, String> map = new HashMap<String, String>();
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
DynaActionForm sendemailForm = (DynaActionForm) form;
File file = this.doAttachment(request);
MultiPartEmail email = new MultiPartEmail();
email.setHostName("smtp.sina.com");
email.setAuthentication("coolhty2008", "huangti");
email.setCharset("UTF-8");
try {
email.setFrom(map.get("from"));
email.addTo(map.get("to"));
email.setSubject(map.get("subject"));
email.setMsg(map.get("message"));
if (file != null) {
EmailAttachment att = new EmailAttachment();
att.setName(file.getName());
att.setPath(file.getPath());
att.setDisposition(EmailAttachment.ATTACHMENT);
email.attach(att);
}
email.send();
return mapping.findForward("success");
} catch (EmailException e) {
e.printStackTrace();
return mapping.findForward("fail");
}
}
private File doAttachment(HttpServletRequest request) {
File file = null;
try {
List list = new ServletFileUpload(new DiskFileItemFactory())
.parseRequest(request);
for (Object obj : list) {
FileItem item = (FileItem) obj;
if (item.isFormField()) {
map.put(item.getFieldName(), item.getString("UTF-8"));
} else {
file = new File("", new File(item.getName()).getName());
item.write(file);
}
}
} catch (Exception e) {
e.printStackTrace();
}
return file;
}
}
怎么获得工程的绝对路径呢?还请大家帮我看一下..谢谢.