KickJava   Java API By Example, From Geeks To Geeks.

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


1 package org.jahia.deprecated.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.services.pages.JahiaPage;
13 import org.jahia.utils.JahiaConsole;
14
15
16 /**
17  * Generate an html form which name is "jahiaform" and action is the current page request with cache off
18  *
19  * @author Khue Nguyen <a HREF="mailto:knguyen@jahia.org">knguyen@jahia.org</a>
20  */

21 public class JahiaPageFormTag extends TagSupport JavaDoc {
22
23     private static final String JavaDoc CLASS_NAME = JahiaPageFormTag.class.getName();
24     public static final String JavaDoc FORM_NAME = "jahiapageform";
25     private String JavaDoc name = FORM_NAME;
26     private String JavaDoc method = "POST";
27
28     public void setName(String JavaDoc name)
29     {
30         if ( name != null && !name.trim().equals("") )
31         {
32             this.name = name;
33         }
34     }
35
36     public String JavaDoc getName()
37     {
38         return this.name;
39     }
40
41     public void setMethod(String JavaDoc method)
42     {
43         if ( method != null && method.equalsIgnoreCase("get") )
44         {
45             this.method = method;
46         }
47     }
48
49     public String JavaDoc getMethod()
50     {
51         return this.method;
52     }
53
54     public int doStartTag() {
55         ServletRequest JavaDoc 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 JavaDoc 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 JavaDoc out = pageContext.getOut();
76             StringBuffer JavaDoc buff = new StringBuffer JavaDoc("<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 JavaDoc 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 JavaDoc out = pageContext.getOut();
97             out.print("</form>");
98             return EVAL_PAGE;
99         } catch (IOException JavaDoc ioe) {
100             JahiaConsole.println(CLASS_NAME+"doStartTag", ioe.toString());
101         }
102         return EVAL_PAGE;
103     }
104
105     public int doEndTag() throws JspException JavaDoc {
106         // let's reinitialize the tag variables to allow tag object reuse in
107
// pooling.
108
name = FORM_NAME;
109         method = "POST";
110         return EVAL_PAGE;
111     }
112
113 }
114
Popular Tags