1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 package org.apache.struts2.components;
23
24 import java.io.Writer;
25 import java.util.Map;
26
27 import org.apache.struts2.views.annotations.StrutsTag;
28
29 import com.opensymphony.xwork2.util.ValueStack;
30
31 /***
32 * <!-- START SNIPPET: javadoc -->
33 *
34 * <p>Perform basic condition flow. 'If' tag could be used by itself or with 'Else If' Tag and/or single/multiple 'Else'
35 * Tag.</p>
36 *
37 * <!-- END SNIPPET: javadoc -->
38 *
39 * <!-- START SNIPPET: params -->
40 *
41 * no params
42 *
43 * <!-- END SNIPPET: params -->
44 *
45 *
46 * <pre>
47 * <!-- START SNIPPET: example -->
48 * <s:if test="%{false}">
49 * <div>Will Not Be Executed</div>
50 * </s:if>
51 * <s:elseif test="%{true}">
52 * <div>Will Be Executed</div>
53 * </s:elseif>
54 * <s:else>
55 * <div>Will Not Be Executed</div>
56 * </s:else>
57 * <!-- END SNIPPET: example -->
58 * </pre>
59 *
60 */
61 @StrutsTag(name="else", tldTagClass="org.apache.struts2.views.jsp.ElseTag", description="Else tag")
62 public class Else extends Component {
63 public Else(ValueStack stack) {
64 super(stack);
65 }
66
67 public boolean start(Writer writer) {
68 Map context = stack.getContext();
69 Boolean ifResult = (Boolean) context.get(If.ANSWER);
70
71 context.remove(If.ANSWER);
72
73 return !((ifResult == null) || (ifResult.booleanValue()));
74 }
75 }