1 package org.jahia.deprecated.taglibs.form; 2 3 import java.io.IOException ; 4 5 import javax.servlet.ServletRequest ; 6 import javax.servlet.jsp.JspException ; 7 import javax.servlet.jsp.JspWriter ; 8 import javax.servlet.jsp.tagext.TagSupport ; 9 10 import org.jahia.data.JahiaData; 11 import org.jahia.exceptions.JahiaException; 12 import org.jahia.services.pages.JahiaPage; 13 import org.jahia.utils.JahiaConsole; 14 15 16 21 public class JahiaPageFormTag extends TagSupport { 22 23 private static final String CLASS_NAME = JahiaPageFormTag.class.getName(); 24 public static final String FORM_NAME = "jahiapageform"; 25 private String name = FORM_NAME; 26 private String method = "POST"; 27 28 public void setName(String name) 29 { 30 if ( name != null && !name.trim().equals("") ) 31 { 32 this.name = name; 33 } 34 } 35 36 public String getName() 37 { 38 return this.name; 39 } 40 41 public void setMethod(String method) 42 { 43 if ( method != null && method.equalsIgnoreCase("get") ) 44 { 45 this.method = method; 46 } 47 } 48 49 public String getMethod() 50 { 51 return this.method; 52 } 53 54 public int doStartTag() { 55 ServletRequest request = pageContext.getRequest(); 56 JahiaData jData = (JahiaData) request.getAttribute("org.jahia.data.JahiaData"); 57 if ( jData == null ) 58 return EVAL_BODY_INCLUDE; 59 60 JahiaPage page = jData.params().getPage(); 61 62 try { 63 String pageUrl = page.getUrl(jData.params()); 64 if ( pageUrl != null && pageUrl.indexOf("/cache/off") == -1 ) 65 { 66 int pos = pageUrl.indexOf("?"); 67 if ( pos == -1 ) 68 { 69 pageUrl += "/cache/offonce"; 70 } else { 71 pageUrl = pageUrl.substring(0,pos-1) + "/cache/offonce" + pageUrl.substring(pos); 72 } 73 } 74 75 JspWriter out = pageContext.getOut(); 76 StringBuffer buff = new StringBuffer ("<form name=\""); 77 buff.append(this.name); 78 buff.append("\"" ); 79 buff.append(" action=\""); 80 buff.append(pageUrl); 81 buff.append("\" method=\""); 82 buff.append(this.method); 83 buff.append("\">"); 84 out.print(buff.toString()); 85 } catch (IOException ioe) { 86 JahiaConsole.println(CLASS_NAME+"doStartTag", ioe.toString()); 87 } catch (JahiaException je) { 88 JahiaConsole.println(CLASS_NAME+"doStartTag", je.toString()); 89 } 90 91 return EVAL_BODY_INCLUDE; 92 } 93 94 public int doAfterBody(){ 95 try { 96 JspWriter out = pageContext.getOut(); 97 out.print("</form>"); 98 return EVAL_PAGE; 99 } catch (IOException ioe) { 100 JahiaConsole.println(CLASS_NAME+"doStartTag", ioe.toString()); 101 } 102 return EVAL_PAGE; 103 } 104 105 public int doEndTag() throws JspException { 106 name = FORM_NAME; 109 method = "POST"; 110 return EVAL_PAGE; 111 } 112 113 } 114 | Popular Tags |