1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.struts2.jasper.tagplugins.jstl.core;
20
21 import org.apache.struts2.jasper.compiler.tagplugin.TagPlugin;
22 import org.apache.struts2.jasper.compiler.tagplugin.TagPluginContext;
23
24 public final class If implements TagPlugin {
25
26 public void doTag(TagPluginContext ctxt) {
27 String condV = ctxt.getTemporaryVariableName();
28 ctxt.generateJavaSource("boolean " + condV + "=");
29 ctxt.generateAttribute("test");
30 ctxt.generateJavaSource(";");
31 if (ctxt.isAttributeSpecified("var")) {
32 String scope = "PageContext.PAGE_SCOPE";
33 if (ctxt.isAttributeSpecified("scope")) {
34 String scopeStr = ctxt.getConstantAttribute("scope");
35 if ("request".equals(scopeStr)) {
36 scope = "PageContext.REQUEST_SCOPE";
37 } else if ("session".equals(scopeStr)) {
38 scope = "PageContext.SESSION_SCOPE";
39 } else if ("application".equals(scopeStr)) {
40 scope = "PageContext.APPLICATION_SCOPE";
41 }
42 }
43 ctxt.generateJavaSource("_jspx_page_context.setAttribute(");
44 ctxt.generateAttribute("var");
45 ctxt.generateJavaSource(", new Boolean(" + condV + ")," + scope + ");");
46 }
47 ctxt.generateJavaSource("if (" + condV + "){");
48 ctxt.generateBody();
49 ctxt.generateJavaSource("}");
50 }
51 }