KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > quadcap > http > servlets > jsp > TagJspSetProperty


1 package com.quadcap.http.servlets.jsp;
2
3 /* Copyright 1999 - 2003 Quadcap Software. All rights reserved.
4  *
5  * This software is distributed under the Quadcap Free Software License.
6  * This software may be used or modified for any purpose, personal or
7  * commercial. Open Source redistributions are permitted. Commercial
8  * redistribution of larger works derived from, or works which bundle
9  * this software requires a "Commercial Redistribution License"; see
10  * http://www.quadcap.com/purchase.
11  *
12  * Redistributions qualify as "Open Source" under one of the following terms:
13  *
14  * Redistributions are made at no charge beyond the reasonable cost of
15  * materials and delivery.
16  *
17  * Redistributions are accompanied by a copy of the Source Code or by an
18  * irrevocable offer to provide a copy of the Source Code for up to three
19  * years at the cost of materials and delivery. Such redistributions
20  * must allow further use, modification, and redistribution of the Source
21  * Code under substantially the same terms as this license.
22  *
23  * Redistributions of source code must retain the copyright notices as they
24  * appear in each source code file, these license terms, and the
25  * disclaimer/limitation of liability set forth as paragraph 6 below.
26  *
27  * Redistributions in binary form must reproduce this Copyright Notice,
28  * these license terms, and the disclaimer/limitation of liability set
29  * forth as paragraph 6 below, in the documentation and/or other materials
30  * provided with the distribution.
31  *
32  * The Software is provided on an "AS IS" basis. No warranty is
33  * provided that the Software is free of defects, or fit for a
34  * particular purpose.
35  *
36  * Limitation of Liability. Quadcap Software shall not be liable
37  * for any damages suffered by the Licensee or any third party resulting
38  * from use of the Software.
39  */

40
41 import java.io.PrintWriter JavaDoc;
42
43 import java.util.Hashtable JavaDoc;
44
45 import org.xml.sax.AttributeList JavaDoc;
46
47 import com.quadcap.util.Debug;
48
49 /**
50  *
51  * Implementation of the <b>&lt;jsp:setProperty&gt;</b> tag.
52  *
53  * @author Stan Bailes
54  */

55 public class TagJspSetProperty extends TagJsp {
56     public TagJspSetProperty() {}
57
58     public TagJspSetProperty(TagContext context) {
59     super(context);
60     }
61
62     public TagInstance makeInstance(TagContext context) {
63     return new TagJspSetProperty(context);
64     }
65
66     public void doStartTag(String JavaDoc tagName, AttributeList JavaDoc attributes)
67     throws JspException
68     {
69     super.doStartTag(tagName, attributes);
70     context.addPageDirective("import",
71                  "com.quadcap.http.servlets.jsp.PropertyUtils");
72
73     PrintWriter JavaDoc w = context.getPrintWriter();
74     String JavaDoc name = attributes.getValue("name");
75     String JavaDoc prop = attributes.getValue("property");
76     if (prop.equals("*")) {
77         w.print(" PropertyUtils.");
78         w.print("setPropertiesFromRequest(");
79         w.print(name);
80         w.println(", request);");
81         return;
82     }
83
84     String JavaDoc param = attributes.getValue("param");
85     if (param != null) {
86         w.print(" PropertyUtils.");
87         w.print("setPropertyFromRequestParameter(");
88         w.print(name);
89         w.print(", request, \"");
90         w.print(param);
91         w.println("\");");
92         return;
93     }
94
95     String JavaDoc value = attributes.getValue("value").trim();
96     if (value != null) {
97         if (value.startsWith("<%=") && value.endsWith("%>")) {
98         value = value.substring(3);
99         value = value.substring(value.length() - 2).trim();
100         } else {
101         value = "\"" + value + "\"";
102         }
103         w.print(" PropertyUtils.");
104         w.print("setPropertyFromValue(");
105         w.print(name);
106         w.print(", String.valueOf(");
107         w.print(value);
108         w.println("));");
109         return;
110     }
111
112     throw new JspException("Bad jsp:setProperty tag");
113     }
114 }
115
116
Popular Tags