KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jahia > taglibs > form > JahiaPageFormTag


1 package org.jahia.taglibs.form;
2
3 import java.io.IOException JavaDoc;
4
5 import javax.servlet.ServletRequest JavaDoc;
6 import javax.servlet.jsp.JspException JavaDoc;
7 import javax.servlet.jsp.JspWriter JavaDoc;
8 import javax.servlet.jsp.tagext.TagSupport JavaDoc;
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 /**
18  * Generate an html form which name is "jahiaform" and action is the
19  * current page request with cache off
20  *
21  * @author Khue Nguyen <a HREF="mailto:knguyen@jahia.org">knguyen@jahia.org</a>
22  */

23 public class JahiaPageFormTag extends TagSupport JavaDoc {
24
25     private static final String JavaDoc CLASS_NAME = JahiaPageFormTag.class.getName();
26     public static final String JavaDoc FORM_NAME = "jahiapageform";
27     private String JavaDoc name = FORM_NAME;
28     private String JavaDoc method = "POST";
29
30     public void setName(String JavaDoc name)
31     {
32         if ( name != null && !name.trim().equals("") )
33         {
34             this.name = name;
35         }
36     }
37
38     public String JavaDoc getName()
39     {
40         return this.name;
41     }
42
43     public void setMethod(String JavaDoc method)
44     {
45         if ( method != null && method.equalsIgnoreCase("get") )
46         {
47             this.method = method;
48         }
49     }
50
51     public String JavaDoc getMethod()
52     {
53         return this.method;
54     }
55
56     public int doStartTag() {
57         ServletRequest JavaDoc 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 JavaDoc 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 JavaDoc pageUrl = page.getURL(jData.params());
71
72             JspWriter JavaDoc out = pageContext.getOut();
73             StringBuffer JavaDoc buff = new StringBuffer JavaDoc("<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 JavaDoc 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         /*
91         try {
92             String pageUrl = page.getUrl(jData.params());
93             if ( pageUrl != null && pageUrl.indexOf("/cache/off") == -1 )
94             {
95                 int pos = pageUrl.indexOf("?");
96                 if ( pos == -1 )
97                 {
98                     pageUrl += "/cache/offonce";
99                 } else {
100                     pageUrl = pageUrl.substring(0,pos-1) + "/cache/offonce" + pageUrl.substring(pos);
101                 }
102             }
103
104             JspWriter out = pageContext.getOut();
105             StringBuffer buff = new StringBuffer("<form name=\"");
106             buff.append(this.name);
107             buff.append("\"" );
108             buff.append(" action=\"");
109             buff.append(pageUrl);
110             buff.append("\" method=\"");
111             buff.append(this.method);
112             buff.append("\">");
113             out.print(buff.toString());
114         } catch (IOException ioe) {
115             JahiaConsole.println(CLASS_NAME+"doStartTag", ioe.toString());
116         } catch (JahiaException je) {
117             JahiaConsole.println(CLASS_NAME+"doStartTag", je.toString());
118         }*/

119
120         return EVAL_BODY_INCLUDE;
121     }
122
123     public int doAfterBody(){
124         try {
125             JspWriter JavaDoc out = pageContext.getOut();
126             out.print("</form>");
127             return EVAL_PAGE;
128         } catch (IOException JavaDoc ioe) {
129             JahiaConsole.println(CLASS_NAME+"doStartTag", ioe.toString());
130         }
131         return EVAL_PAGE;
132     }
133
134     public int doEndTag() throws JspException JavaDoc {
135         // let's reinitialize the tag variables to allow tag object reuse in
136
// pooling.
137
name = FORM_NAME;
138         method = "POST";
139         return EVAL_PAGE;
140     }
141
142 }
143
Popular Tags