1 package org.jahia.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.params.ParamBean; 13 import org.jahia.services.pages.JahiaPage; 14 import org.jahia.utils.JahiaConsole; 15 16 17 23 public class JahiaPageFormTag extends TagSupport { 24 25 private static final String CLASS_NAME = JahiaPageFormTag.class.getName(); 26 public static final String FORM_NAME = "jahiapageform"; 27 private String name = FORM_NAME; 28 private String method = "POST"; 29 30 public void setName(String name) 31 { 32 if ( name != null && !name.trim().equals("") ) 33 { 34 this.name = name; 35 } 36 } 37 38 public String getName() 39 { 40 return this.name; 41 } 42 43 public void setMethod(String method) 44 { 45 if ( method != null && method.equalsIgnoreCase("get") ) 46 { 47 this.method = method; 48 } 49 } 50 51 public String getMethod() 52 { 53 return this.method; 54 } 55 56 public int doStartTag() { 57 ServletRequest request = pageContext.getRequest(); 58 JahiaData jData = (JahiaData) request.getAttribute("org.jahia.data.JahiaData"); 59 if ( jData == null ) 60 return EVAL_BODY_INCLUDE; 61 62 JahiaPage page = jData.params().getPage(); 63 64 String oldCacheStatus = jData.params().getCacheStatus(); 65 66 try { 67 if ( !ParamBean.CACHE_OFF.equals(jData.params().getCacheStatus()) ){ 68 jData.params().setCacheStatus(ParamBean.CACHE_BYPASS); 69 } 70 String pageUrl = page.getURL(jData.params()); 71 72 JspWriter out = pageContext.getOut(); 73 StringBuffer buff = new StringBuffer ("<form name=\""); 74 buff.append(this.name); 75 buff.append("\"" ); 76 buff.append(" action=\""); 77 buff.append(pageUrl); 78 buff.append("\" method=\""); 79 buff.append(this.method); 80 buff.append("\">"); 81 out.print(buff.toString()); 82 } catch (IOException ioe) { 83 JahiaConsole.println(CLASS_NAME+"doStartTag", ioe.toString()); 84 } catch (JahiaException je) { 85 JahiaConsole.println(CLASS_NAME+"doStartTag", je.toString()); 86 } finally { 87 jData.params().setCacheStatus(oldCacheStatus); 88 } 89 90 119 120 return EVAL_BODY_INCLUDE; 121 } 122 123 public int doAfterBody(){ 124 try { 125 JspWriter out = pageContext.getOut(); 126 out.print("</form>"); 127 return EVAL_PAGE; 128 } catch (IOException ioe) { 129 JahiaConsole.println(CLASS_NAME+"doStartTag", ioe.toString()); 130 } 131 return EVAL_PAGE; 132 } 133 134 public int doEndTag() throws JspException { 135 name = FORM_NAME; 138 method = "POST"; 139 return EVAL_PAGE; 140 } 141 142 } 143 | Popular Tags |