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 javax.servlet.http.HttpServletRequest;
25 import javax.servlet.http.HttpServletResponse;
26
27 import org.apache.struts2.views.annotations.StrutsTag;
28 import org.apache.struts2.views.annotations.StrutsTagAttribute;
29
30 import com.opensymphony.xwork2.util.ValueStack;
31
32 /***
33 * <!-- START SNIPPET: javadoc -->
34 * Renders an HTML input element of type checkbox, populated by the specified property from the ValueStack.
35 * <!-- END SNIPPET: javadoc -->
36 *
37 * <p/> <b>Examples</b>
38 *
39 * <pre>
40 * <!-- START SNIPPET: example -->
41 * JSP:
42 * <s:checkbox label="checkbox test" name="checkboxField1" value="aBoolean" fieldValue="true"/>
43 *
44 * Velocity:
45 * #tag( Checkbox "label=checkbox test" "name=checkboxField1" "value=aBoolean" )
46 *
47 * Resulting HTML (simple template, aBoolean == true):
48 * <input type="checkbox" name="checkboxField1" value="true" checked="checked" />
49 *
50 * <!-- END SNIPPET: example -->
51 * </pre>
52 *
53 */
54 @StrutsTag(
55 name="checkbox",
56 tldTagClass="org.apache.struts2.views.jsp.ui.CheckboxTag",
57 description="Render a checkbox input field",
58 allowDynamicAttributes=true)
59 public class Checkbox extends UIBean {
60 final public static String TEMPLATE = "checkbox";
61
62 protected String fieldValue;
63
64 public Checkbox(ValueStack stack, HttpServletRequest request, HttpServletResponse response) {
65 super(stack, request, response);
66 }
67
68 protected String getDefaultTemplate() {
69 return TEMPLATE;
70 }
71
72 protected void evaluateExtraParams() {
73 if (fieldValue != null) {
74 addParameter("fieldValue", findString(fieldValue));
75 } else {
76 addParameter("fieldValue", "true");
77 }
78 }
79
80 protected Class getValueClassType() {
81 return Boolean.class;
82 }
83
84 @StrutsTagAttribute(description="The actual HTML value attribute of the checkbox.", defaultValue="true")
85 public void setFieldValue(String fieldValue) {
86 this.fieldValue = fieldValue;
87 }
88
89 }