KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > jasper > tagplugins > jstl > If


1
2
3 /*
4  * The contents of this file are subject to the terms
5  * of the Common Development and Distribution License
6  * (the "License"). You may not use this file except
7  * in compliance with the License.
8  *
9  * You can obtain a copy of the license at
10  * glassfish/bootstrap/legal/CDDLv1.0.txt or
11  * https://glassfish.dev.java.net/public/CDDLv1.0.html.
12  * See the License for the specific language governing
13  * permissions and limitations under the License.
14  *
15  * When distributing Covered Code, include this CDDL
16  * HEADER in each file and include the License file at
17  * glassfish/bootstrap/legal/CDDLv1.0.txt. If applicable,
18  * add the following below this CDDL HEADER, with the
19  * fields enclosed by brackets "[]" replaced with your
20  * own identifying information: Portions Copyright [yyyy]
21  * [name of copyright owner]
22  *
23  * Copyright 2005 Sun Microsystems, Inc. All rights reserved.
24  *
25  * Portions Copyright Apache Software Foundation.
26  */

27
28 package org.apache.jasper.tagplugins.jstl;
29
30 import org.apache.jasper.compiler.tagplugin.*;
31
32 public final class If implements TagPlugin {
33
34     public void doTag(TagPluginContext ctxt) {
35     String JavaDoc condV = ctxt.getTemporaryVariableName();
36     ctxt.generateJavaSource("boolean " + condV + "=");
37     ctxt.generateAttribute("test");
38     ctxt.generateJavaSource(";");
39     if (ctxt.isAttributeSpecified("var")) {
40         String JavaDoc scope = "PageContext.PAGE_SCOPE";
41         if (ctxt.isAttributeSpecified("scope")) {
42         String JavaDoc scopeStr = ctxt.getConstantAttribute("scope");
43         if ("request".equals(scopeStr)) {
44             scope = "PageContext.REQUEST_SCOPE";
45         } else if ("session".equals(scopeStr)) {
46             scope = "PageContext.SESSION_SCOPE";
47         } else if ("application".equals(scopeStr)) {
48             scope = "PageContext.APPLICATION_SCOPE";
49         }
50         }
51         ctxt.generateJavaSource("_jspx_page_context.setAttribute(");
52         ctxt.generateAttribute("var");
53         ctxt.generateJavaSource(", new Boolean(" + condV + ")," + scope + ");");
54     }
55     ctxt.generateJavaSource("if (" + condV + "){");
56     ctxt.generateBody();
57     ctxt.generateJavaSource("}");
58     }
59 }
60
Popular Tags