SHARE
TWEET

Parashuram

a guest Jul 7th, 2008 145 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import java.io.IOException;
  2.  
  3. import javax.servlet.jsp.JspException;
  4. import javax.servlet.jsp.JspTagException;
  5. import javax.servlet.jsp.JspWriter;
  6. import javax.servlet.jsp.tagext.BodyContent;
  7. import javax.servlet.jsp.tagext.BodyTagSupport;
  8.  
  9. import org.apache.log4j.Logger;
  10.  
  11. /**
  12.  * Converts the JSP
  13.  *
  14.  * @author narasp
  15.  *
  16.  */
  17. public class Stringify extends BodyTagSupport
  18. {
  19.         private static final long       serialVersionUID        = 7282262424423630138L;
  20.         private String                          jsVar;
  21.         private static Logger logger = Logger.getLogger(Stringify.class);
  22.  
  23.         public void setVariable(String variable)
  24.         {
  25.                 this.jsVar = variable;
  26.         }
  27.  
  28.         public String getVariable()
  29.         {
  30.                 return this.jsVar;
  31.         }
  32.  
  33.         @Override
  34.         public int doStartTag() throws JspException
  35.         {
  36.                 JspWriter out = pageContext.getOut();
  37.                 try
  38.                 {
  39.                         out.print("var " + this.jsVar + " = ");
  40.                 }
  41.                 catch (Exception ex)
  42.                 {
  43.                         throw new JspTagException(ex.getLocalizedMessage());
  44.                 }
  45.                 return EVAL_BODY_TAG;
  46.         }
  47.  
  48.         @Override
  49.         public int doEndTag() throws JspException
  50.         {
  51.                 JspWriter out = pageContext.getOut();
  52.                 try
  53.                 {
  54.                         out.print(";");
  55.                 }
  56.                 catch (Exception ex)
  57.                 {
  58.                         throw new JspTagException(ex.getLocalizedMessage());
  59.                 }
  60.                 return SKIP_BODY;
  61.         }
  62.  
  63.         @Override
  64.         public int doAfterBody() throws JspException
  65.         {
  66.                 BodyContent body = getBodyContent();
  67.                 try
  68.                 {
  69.                         // Make sure we put anything in the output stream in the
  70.                         // body to the output stream of the JSP
  71.                         JspWriter out = body.getEnclosingWriter();
  72.                         out.print(this.replaceTokens(body.getString()));
  73.                 }
  74.                 catch (IOException ioe)
  75.                 {
  76.                         throw new JspTagException(ioe.getLocalizedMessage());
  77.                 }
  78.                 return SKIP_BODY;
  79.         }
  80.        
  81.         /**
  82.          * Replaces all the Tokens to create the HTML content for a file
  83.          * @param s
  84.          * @return
  85.          */
  86.         private String replaceTokens(String s)
  87.         {
  88.                 s = s.replaceAll("\'", "\\\\\'");
  89.                 s = s.replace('\r', ' ');
  90.                 s = s.replace('\n', ' ');
  91.                
  92.                 logger.debug("Changed to " + s);
  93.                 return "\'" + s + "\'";
  94.         }
  95. }
RAW Paste Data
Top