1 16 package com.blandware.atleap.webapp.action.contact; 17 18 import com.blandware.atleap.common.Constants; 19 import com.blandware.atleap.common.util.StringUtil; 20 import com.blandware.atleap.service.util.MailEngine; 21 import com.blandware.atleap.webapp.action.core.BaseAction; 22 import com.blandware.atleap.webapp.form.contact.ContactForm; 23 import com.blandware.atleap.webapp.util.core.GlobalProperties; 24 import org.apache.commons.validator.GenericValidator; 25 import org.apache.struts.action.ActionForm; 26 import org.apache.struts.action.ActionForward; 27 import org.apache.struts.action.ActionMapping; 28 import org.apache.struts.action.ActionMessage; 29 import org.apache.struts.action.ActionMessages; 30 import org.apache.struts.util.RequestUtils; 31 import org.springframework.mail.MailPreparationException; 32 import org.springframework.mail.MailSendException; 33 34 import javax.servlet.http.HttpServletRequest ; 35 import javax.servlet.http.HttpServletResponse ; 36 import java.io.PrintWriter ; 37 import java.io.StringWriter ; 38 import java.util.HashMap ; 39 import java.util.Map ; 40 41 66 public final class PerformContactAction extends BaseAction { 67 68 77 public ActionForward execute(ActionMapping mapping, ActionForm form, 78 HttpServletRequest request, HttpServletResponse response) throws Exception { 79 80 if ( isCancelled(request) ) { 81 return mapping.findForward("index"); 82 } 83 84 ContactForm contactForm = (ContactForm) form; 85 Map model = new HashMap (); 86 model.put("userName", contactForm.getUserName()); 87 model.put("email", contactForm.getEmail()); 88 model.put("message", StringUtil.elToBr(contactForm.getMessage())); 89 90 String localeIdentifier = GlobalProperties.getInstance(request.getSession().getServletContext()).getString(Constants.CONTACT_LANGUAGE_PROPERTY); 91 if ( GenericValidator.isBlankOrNull(localeIdentifier) ) { 92 localeIdentifier = (RequestUtils.getUserLocale(request, null)).getLanguage(); 93 } 94 95 if ( contactForm.getPreview() == null || !request.isUserInRole("core-mailTemplate-previewMessage") ) { 96 97 resetToken(request); 98 99 MailEngine mailEngine = (MailEngine) getBean(Constants.MAIL_ENGINE_BEAN); 101 String contactAddress = GlobalProperties.getInstance(request.getSession().getServletContext()).getString(Constants.CONTACT_ADDRESS_PROPERTY); 102 try { 103 mailEngine.sendMessage(contactAddress, "contactUs", localeIdentifier, model); 104 } catch ( MailPreparationException e ) { 105 if ( log.isErrorEnabled() ) { 106 StringWriter sw = new StringWriter (); 107 e.printStackTrace(new PrintWriter (sw)); 108 log.error(sw.toString()); 109 } 110 ActionMessages errors = new ActionMessages(); 111 errors.add("preparationFailed", new ActionMessage("contact.errors.preparationFailed")); 112 saveErrors(request, errors); 113 saveToken(request); 114 return mapping.getInputForward(); 115 } catch ( MailSendException e ) { 116 if ( log.isErrorEnabled() ) { 117 StringWriter sw = new StringWriter (); 118 e.printStackTrace(new PrintWriter (sw)); 119 log.error(sw.toString()); 120 } 121 ActionMessages errors = new ActionMessages(); 122 errors.add("sendFailed", new ActionMessage("contact.errors.sendFailed")); 123 saveErrors(request, errors); 124 saveToken(request); 125 return mapping.getInputForward(); 126 } catch ( Exception e ) { 127 if ( log.isErrorEnabled() ) { 128 StringWriter sw = new StringWriter (); 129 e.printStackTrace(new PrintWriter (sw)); 130 log.error(sw.toString()); 131 } 132 ActionMessages errors = new ActionMessages(); 133 errors.add("unknownError", new ActionMessage("contact.errors.unknownError")); 134 saveErrors(request, errors); 135 saveToken(request); 136 return mapping.getInputForward(); 137 } 138 return mapping.findForward("contactSuccessful"); 139 } else { 140 request.setAttribute("identifier", "contactUs"); 142 request.setAttribute("model", model); 143 request.setAttribute("locale", localeIdentifier); 144 return mapping.findForward("previewMessage"); 145 } 146 } 147 148 } | Popular Tags |