Advertisement
andgau

MailerCustomTag

Nov 4th, 2013
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.83 KB | None | 0 0
  1. package es.sinjava.labs;
  2.  
  3. import javax.servlet.http.HttpServletRequest;
  4. import javax.servlet.jsp.JspException;
  5. import javax.servlet.jsp.JspWriter;
  6. import javax.servlet.jsp.tagext.TagSupport;
  7.  
  8. public class MailerTag extends TagSupport {
  9.  
  10.     private static final String CONTENT_MAILER = "contentMailer";
  11.     private String styleClass;
  12.     private String messageClass;
  13.     private String cols;
  14.     private String rows;
  15.  
  16.     public String getCols() {
  17.         return cols;
  18.     }
  19.  
  20.     public void setCols(String cols) {
  21.         this.cols = cols;
  22.     }
  23.  
  24.     @Override
  25.     public int doStartTag() throws JspException {
  26.         HttpServletRequest request = (HttpServletRequest) pageContext
  27.                 .getRequest();
  28.         StringBuffer sb = null;
  29.         String texto = request.getParameter(CONTENT_MAILER);
  30.         if (texto != null) {
  31.  
  32.             // Creamos el correo
  33.             MailSender mailSender = new MailSender();
  34.             mailSender.setText(texto);
  35.  
  36.             // lo lanzamos en segundo plano
  37.             Thread segundoPlano = new Thread(mailSender);
  38.             segundoPlano.start();
  39.  
  40.             // Escribimos la salida
  41.             sb = new StringBuffer("<span ");
  42.             prepareAttribute(sb, "class", getMessageClass());
  43.             sb.append(" > Su Solicitud ha sido registrada ");
  44.             sb.append(" </span>");
  45.         } else {
  46.             sb = new StringBuffer("<textarea ");
  47.             // HttpServletResponse resp = (HttpServletResponse) pageContext
  48.             // .getResponse();
  49.             prepareAttribute(sb, "id", getId());
  50.             prepareAttribute(sb, "name", CONTENT_MAILER);
  51.             prepareAttribute(sb, "class", getStyleClass());
  52.             prepareAttribute(sb, "cols", getCols());
  53.             prepareAttribute(sb, "rows", getRows());
  54.             sb.append(" > default value");
  55.             sb.append(" </textarea>");
  56.         }
  57.         JspWriter out = pageContext.getOut();
  58.         try {
  59.             out.print(sb.toString());
  60.         } catch (java.io.IOException e) {
  61.             throw new JspException("IOException while writing to client: " + e);
  62.         }
  63.         return SKIP_BODY;
  64.     }
  65.  
  66.     @Override
  67.     public int doEndTag() throws JspException {
  68.         return EVAL_PAGE;
  69.     }
  70.  
  71.     private void prepareAttribute(StringBuffer sb, String name, String value) {
  72.         if ((value != null) && (value.trim().length() > 0)) {
  73.             sb.append(" ");
  74.             sb.append(name);
  75.             sb.append("=\"");
  76.             sb.append(value.trim());
  77.             sb.append("\"");
  78.         }
  79.     }
  80.  
  81.     public String getStyleClass() {
  82.         return styleClass;
  83.     }
  84.  
  85.     public void setStyleClass(String styleClass) {
  86.         this.styleClass = styleClass;
  87.     }
  88.  
  89.     public String getRows() {
  90.         return rows;
  91.     }
  92.  
  93.     public void setRows(String rows) {
  94.         this.rows = rows;
  95.     }
  96.  
  97.     public String getMessageClass() {
  98.         return messageClass;
  99.     }
  100.  
  101.     public void setMessageClass(String messageClass) {
  102.         this.messageClass = messageClass;
  103.     }
  104.  
  105. }
  106.  
  107. class MailSender implements Runnable {
  108.  
  109.     private String text;
  110.  
  111.     public void run() {
  112.         Mailer mailer = new Mailer(text);
  113.     }
  114.  
  115.     public String getText() {
  116.         return text;
  117.     }
  118.  
  119.     public void setText(String text) {
  120.         this.text = text;
  121.     }
  122. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement