View Javadoc

    1   /*
    2    * $Id: Checkbox.java 497654 2007-01-19 00:21:57Z rgielen $
    3    *
    4    * Licensed to the Apache Software Foundation (ASF) under one
    5    * or more contributor license agreements.  See the NOTICE file
    6    * distributed with this work for additional information
    7    * regarding copyright ownership.  The ASF licenses this file
    8    * to you under the Apache License, Version 2.0 (the
    9    * "License"); you may not use this file except in compliance
    10   * with the License.  You may obtain a copy of the License at
    11   *
    12   *  http://www.apache.org/licenses/LICENSE-2.0
    13   *
    14   * Unless required by applicable law or agreed to in writing,
    15   * software distributed under the License is distributed on an
    16   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    17   * KIND, either express or implied.  See the License for the
    18   * specific language governing permissions and limitations
    19   * under the License.
    20   */
    21  package org.apache.struts2.components;
    22
    23  import javax.servlet.http.HttpServletRequest;
    24  import javax.servlet.http.HttpServletResponse;
    25
    26  import org.apache.struts2.views.annotations.StrutsTag;
    27  import org.apache.struts2.views.annotations.StrutsTagAttribute;
    28
    29  import com.opensymphony.xwork2.util.ValueStack;
    30
    31  /***
    32   * <!-- START SNIPPET: javadoc -->
    33   * Renders an HTML input element of type checkbox, populated by the specified property from the ValueStack.
    34   * <!-- END SNIPPET: javadoc -->
    35   *
    36   * <p/> <b>Examples</b>
    37   *
    38   * <pre>
    39   * <!-- START SNIPPET: example -->
    40   * JSP:
    41   * &lt;s:checkbox label="checkbox test" name="checkboxField1" value="aBoolean" fieldValue="true"/&gt;
    42   *
    43   * Velocity:
    44   * #tag( Checkbox "label=checkbox test" "name=checkboxField1" "value=aBoolean" )
    45   *
    46   * Resulting HTML (simple template, aBoolean == true):
    47   * &lt;input type="checkbox" name="checkboxField1" value="true" checked="checked" /&gt;
    48   *
    49   * <!-- END SNIPPET: example -->
    50   * </pre>
    51   *
    52   */
    53  @StrutsTag(name="checkbox", tldTagClass="org.apache.struts2.views.jsp.ui.CheckboxTag", description="Render a checkbox input field")
    54  public class Checkbox extends UIBean {
    55      final public static String TEMPLATE = "checkbox";
    56
    57      protected String fieldValue;
    58
    59      public Checkbox(ValueStack stack, HttpServletRequest request, HttpServletResponse response) {
    60          super(stack, request, response);
    61      }
    62
    63      protected String getDefaultTemplate() {
    64          return TEMPLATE;
    65      }
    66
    67      protected void evaluateExtraParams() {
    68          if (fieldValue != null) {
    69              addParameter("fieldValue", findString(fieldValue));
    70          } else {
    71              addParameter("fieldValue", "true");
    72          }
    73      }
    74
    75      protected Class getValueClassType() {
    76          return Boolean.class; // for checkboxes, everything needs to end up as a Boolean
    77      }
    78
    79      @StrutsTagAttribute(description="The actual HTML value attribute of the checkbox.", defaultValue="true")
    80      public void setFieldValue(String fieldValue) {
    81          this.fieldValue = fieldValue;
    82      }
    83
    84  }