Class UIBean

java.lang.Object
org.apache.struts2.components.Component
org.apache.struts2.components.UIBean
Direct Known Subclasses:
ActionError, ActionMessage, Checkbox, ClosingUIBean, DateTextField, Debug, FieldError, File, GenericUIBean, Head, Hidden, Label, Link, ListUIBean, TextArea, TextField, Token

public abstract class UIBean extends Component

UIBean is the standard superclass of all Struts UI components. It defines common Struts and html properties all UI components should present for usage.

Attribute Theme Data Types Description
templateDir n/a String define the template directory
theme n/a String define the theme name
template n/a String define the template name
themeExpansionToken n/a String special token (defined with struts.ui.theme.expansion.token) used to search for template in parent theme (don't use it separately!)
expandTheme n/a String concatenation of themeExpansionToken and theme which tells internal template loader mechanism to try load template from current theme and then from parent theme (and parent theme, and so on) when used with <#include/> directive
Attribute Theme Data Types Description
cssClass simple String define html class attribute
cssStyle simple String define html style attribute
cssErrorClass simple String error class attribute
cssErrorStyle simple String error style attribute
title simple String define html title attribute
disabled simple String define html disabled attribute
label xhtml String define label of form element
labelPosition xhtml String define label position of form element (top/left), default to left
requiredPosition xhtml String define required label position of form element (left/right), default to right
errorPosition xhtml String define error position of form element (top|bottom), default to top
name simple String Form Element's field name mapping
requiredLabel xhtml Boolean add * to label (true to add false otherwise)
tabIndex simple String define html tabindex attribute
value simple Object define value of form element
Attribute Theme Data Types Description
onclick simple String html javascript onclick attribute
ondblclick simple String html javascript ondbclick attribute
onmousedown simple String html javascript onmousedown attribute
onmouseup simple String html javascript onmouseup attribute
onmouseover simple String html javascript onmouseover attribute
onmouseout simple String html javascript onmouseout attribute
onfocus simple String html javascript onfocus attribute
onblur simple String html javascript onblur attribute
onkeypress simple String html javascript onkeypress attribute
onkeyup simple String html javascript onkeyup attribute
onkeydown simple String html javascript onkeydown attribute
onselect simple String html javascript onselect attribute
onchange simple String html javascript onchange attribute
Deprecated since 7.0.1</strong
Attribute Data Type Default Description
tooltip String none Set the tooltip of this particular component
jsTooltipEnabled String false Enable js tooltip rendering
tooltipIcon String /static/tooltip/tooltip.gif The url to the tooltip icon
tooltipDelay String 500 Tooltip shows up after the specified timeout (miliseconds). A behavior similar to that of OS based tooltips.
key simple String The name of the property this input field represents. This will auto populate the name, label, and value

tooltipConfig is deprecated, use individual tooltip configuration attributes instead

Every Form UI component (in xhtml / css_xhtml or any other that extends them) can have tooltips assigned to them. The Form component's tooltip related attribute, once defined, will be applied to all form UI components that are created under it unless explicitly overridden by having the Form UI component itself defined with their own tooltip attribute.

In Example 1, the textfield will inherit the tooltipDelay and tooltipIconPath attribute from its containing form. In other words, although it doesn't define a tooltipIconPath attribute, it will have that attribute inherited from its containing form.

In Example 2, the textfield will inherit both the tooltipDelay and tooltipIconPath attribute from its containing form, but the tooltipDelay attribute is overridden at the textfield itself. Hence, the textfield actually will have its tooltipIcon defined as /myImages/myIcon.gif, inherited from its containing form, and tooltipDelay defined as 5000.

Example 3, 4 and 5 show different ways of setting the tooltip configuration attribute.
Example 3: Set tooltip config through the body of the param tag
Example 4: Set tooltip config through the value attribute of the param tag
Example 5: Set tooltip config through the tooltip attributes of the component tag

 
 Deprecated since 7.0.1
 <!-- Example 1: -->
 <s:form
          tooltipDelay="500"
          tooltipIconPath="/myImages/myIcon.gif" .... >
   ....
     <s:textfield label="Customer Name" tooltip="Enter the customer name" .... />
   ....
 </s:form>

 <!-- Example 2: -->
 <s:form
          tooltipDelay="500"
          tooltipIconPath="/myImages/myIcon.gif" .... >
   ....
     <s:textfield label="Address"
          tooltip="Enter your address"
          tooltipDelay="5000" />
   ....
 </s:form>


 <-- Example 3: -->
 <s:textfield
        label="Customer Name"
        tooltip="One of our customer Details">
        <s:param name="tooltipDelay">
             500
        </s:param>
        <s:param name="tooltipIconPath">
             /myImages/myIcon.gif
        </s:param>
 </s:textfield>


 <-- Example 4: -->
 <s:textfield
          label="Customer Address"
          tooltip="Enter The Customer Address" >
          <s:param
              name="tooltipDelay"
              value="500" />
 </s:textfield>


 <-- Example 5: -->
 <s:textfield
          label="Customer Telephone Number"
          tooltip="Enter customer Telephone Number"
          tooltipDelay="500"
          tooltipIconPath="/myImages/myIcon.gif" />

 
 
  • Field Details

    • ATTR_FIELD_VALUE

      protected static final String ATTR_FIELD_VALUE
      See Also:
    • ATTR_NAME_VALUE

      protected static final String ATTR_NAME_VALUE
      See Also:
    • ATTR_VALUE

      protected static final String ATTR_VALUE
      See Also:
    • request

      protected jakarta.servlet.http.HttpServletRequest request
    • response

      protected jakarta.servlet.http.HttpServletResponse response
    • templateSuffix

      protected String templateSuffix
    • template

      protected String template
    • templateDir

      protected String templateDir
    • theme

      protected String theme
    • key

      protected String key
    • id

      protected String id
    • cssClass

      protected String cssClass
    • cssStyle

      protected String cssStyle
    • cssErrorClass

      protected String cssErrorClass
    • cssErrorStyle

      protected String cssErrorStyle
    • disabled

      protected String disabled
    • label

      protected String label
    • labelPosition

      protected String labelPosition
    • labelSeparator

      protected String labelSeparator
    • requiredPosition

      protected String requiredPosition
    • errorPosition

      protected String errorPosition
    • name

      protected String name
    • requiredLabel

      protected String requiredLabel
    • tabindex

      protected String tabindex
    • value

      protected String value
    • title

      protected String title
    • onclick

      protected String onclick
    • ondblclick

      protected String ondblclick
    • onmousedown

      protected String onmousedown
    • onmouseup

      protected String onmouseup
    • onmouseover

      protected String onmouseover
    • onmousemove

      protected String onmousemove
    • onmouseout

      protected String onmouseout
    • onfocus

      protected String onfocus
    • onblur

      protected String onblur
    • onkeypress

      protected String onkeypress
    • onkeydown

      protected String onkeydown
    • onkeyup

      protected String onkeyup
    • onselect

      protected String onselect
    • onchange

      protected String onchange
    • accesskey

      protected String accesskey
    • tooltip

      protected String tooltip
    • tooltipConfig

      protected String tooltipConfig
    • javascriptTooltip

      protected String javascriptTooltip
    • tooltipDelay

      protected String tooltipDelay
    • tooltipCssClass

      protected String tooltipCssClass
    • tooltipIconPath

      protected String tooltipIconPath
    • dynamicAttributes

      protected Map<String,Object> dynamicAttributes
    • defaultTemplateDir

      protected String defaultTemplateDir
    • defaultUITheme

      protected String defaultUITheme
    • uiThemeExpansionToken

      protected String uiThemeExpansionToken
    • uiStaticContentPath

      protected String uiStaticContentPath
    • templateEngineManager

      protected TemplateEngineManager templateEngineManager
  • Constructor Details

    • UIBean

      public UIBean(ValueStack stack, jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response)
  • Method Details

    • setDefaultTemplateDir

      public void setDefaultTemplateDir(String dir)
    • setDefaultUITheme

      public void setDefaultUITheme(String theme)
    • setUIThemeExpansionToken

      public void setUIThemeExpansionToken(String uiThemeExpansionToken)
    • setStaticContentPath

      public void setStaticContentPath(String uiStaticContentPath)
    • setTemplateEngineManager

      public void setTemplateEngineManager(TemplateEngineManager mgr)
    • end

      public boolean end(Writer writer, String body)
      Description copied from class: Component
      Callback for the end tag of this component. Should the body be evaluated again?
      NOTE: will pop component stack.
      Overrides:
      end in class Component
      Parameters:
      writer - the output writer.
      body - the rendered body.
      Returns:
      true if the body should be evaluated again
    • getDefaultTemplate

      protected abstract String getDefaultTemplate()
      A contract that requires each concrete UI Tag to specify which template should be used as a default. For example, the CheckboxTab might return "checkbox.vm" while the RadioTag might return "radio.vm". This value not begin with a '/' unless you intend to make the path absolute rather than relative to the current theme.
      Returns:
      The name of the template to be used as the default.
    • buildTemplateName

      protected Template buildTemplateName(String myTemplate, String myDefaultTemplate)
    • mergeTemplate

      protected void mergeTemplate(Writer writer, Template template) throws Exception
      Throws:
      Exception
    • getTemplateDir

      public String getTemplateDir()
    • getTheme

      public String getTheme()
    • evaluateParams

      public void evaluateParams()
    • applyValueParameter

      protected void applyValueParameter(String translatedName)
      Tries to calculate the "value" parameter based either on the provided value or name
      Parameters:
      translatedName - the already evaluated name
    • escape

      protected String escape(String name)
    • ensureAttributeSafelyNotEscaped

      protected String ensureAttributeSafelyNotEscaped(String val)
      Ensures an unescaped attribute value cannot be vulnerable to XSS attacks
      Parameters:
      val - The value to check
      Returns:
      The escaped value
    • evaluateExtraParams

      protected void evaluateExtraParams()
    • evaluateNameValue

      protected boolean evaluateNameValue()
    • getValueClassType

      protected Class<?> getValueClassType()
    • addFormParameter

      public void addFormParameter(String key, Object value)
    • enableAncestorFormCustomOnsubmit

      protected void enableAncestorFormCustomOnsubmit()
    • getTooltipConfig

      @Deprecated(since="7.0.1", forRemoval=true) protected Map<String,String> getTooltipConfig(UIBean component)
      Deprecated, for removal: This API element is subject to removal in a future version.
    • populateComponentHtmlId

      protected void populateComponentHtmlId(Form form)
      Create HTML id element for the component and populate this component parameter map. Additionally, a parameter named escapedId is populated which contains the found id value filtered by escape(String), needed eg. for naming Javascript identifiers based on the id value. The order is as follows :-
      1. This component id attribute
      2. [containing_form_id]_[this_component_name]
      3. [this_component_name]
      Parameters:
      form - enclosing form tag
    • getId

      public String getId()
      Get's the id for referencing element.
      Returns:
      the id for referencing element.
    • setId

      public void setId(String id)
    • setTemplateDir

      public void setTemplateDir(String templateDir)
    • setTheme

      public void setTheme(String theme)
    • getTemplate

      public String getTemplate()
    • setTemplate

      public void setTemplate(String template)
    • setCssClass

      public void setCssClass(String cssClass)
    • setCssStyle

      public void setCssStyle(String cssStyle)
    • setStyle

      public void setStyle(String cssStyle)
    • setCssErrorClass

      public void setCssErrorClass(String cssErrorClass)
    • setCssErrorStyle

      public void setCssErrorStyle(String cssErrorStyle)
    • setTitle

      public void setTitle(String title)
    • setDisabled

      public void setDisabled(String disabled)
    • setLabel

      public void setLabel(String label)
    • setLabelSeparator

      public void setLabelSeparator(String labelseparator)
    • setLabelPosition

      public void setLabelPosition(String labelPosition)
    • setRequiredPosition

      public void setRequiredPosition(String requiredPosition)
    • setErrorPosition

      public void setErrorPosition(String errorPosition)
    • setName

      public void setName(String name)
    • setRequiredLabel

      public void setRequiredLabel(String requiredLabel)
    • setTabindex

      public void setTabindex(String tabindex)
    • setValue

      public void setValue(String value)
    • setOnclick

      public void setOnclick(String onclick)
    • setOndblclick

      public void setOndblclick(String ondblclick)
    • setOnmousedown

      public void setOnmousedown(String onmousedown)
    • setOnmouseup

      public void setOnmouseup(String onmouseup)
    • setOnmouseover

      public void setOnmouseover(String onmouseover)
    • setOnmousemove

      public void setOnmousemove(String onmousemove)
    • setOnmouseout

      public void setOnmouseout(String onmouseout)
    • setOnfocus

      public void setOnfocus(String onfocus)
    • setOnblur

      public void setOnblur(String onblur)
    • setOnkeypress

      public void setOnkeypress(String onkeypress)
    • setOnkeydown

      public void setOnkeydown(String onkeydown)
    • setOnkeyup

      public void setOnkeyup(String onkeyup)
    • setOnselect

      public void setOnselect(String onselect)
    • setOnchange

      public void setOnchange(String onchange)
    • setAccesskey

      public void setAccesskey(String accesskey)
    • setTooltip

      @Deprecated(since="7.0.1", forRemoval=true) public void setTooltip(String tooltip)
      Deprecated, for removal: This API element is subject to removal in a future version.
    • setTooltipConfig

      @Deprecated(since="7.0.1", forRemoval=true) public void setTooltipConfig(String tooltipConfig)
      Deprecated, for removal: This API element is subject to removal in a future version.
    • setKey

      public void setKey(String key)
    • setJavascriptTooltip

      @Deprecated(since="7.0.1", forRemoval=true) public void setJavascriptTooltip(String javascriptTooltip)
      Deprecated, for removal: This API element is subject to removal in a future version.
    • setTooltipCssClass

      @Deprecated(since="7.0.1", forRemoval=true) public void setTooltipCssClass(String tooltipCssClass)
      Deprecated, for removal: This API element is subject to removal in a future version.
    • setTooltipDelay

      @Deprecated(since="7.0.1", forRemoval=true) public void setTooltipDelay(String tooltipDelay)
      Deprecated, for removal: This API element is subject to removal in a future version.
    • setTooltipIconPath

      @Deprecated(since="7.0.1", forRemoval=true) public void setTooltipIconPath(String tooltipIconPath)
      Deprecated, for removal: This API element is subject to removal in a future version.
    • setDynamicAttributes

      public void setDynamicAttributes(Map<String,String> tagDynamicAttributes)
    • copyAttributes

      public void copyAttributes(Map<String,Object> attributesToCopy)
      supports dynamic attributes for freemarker ui tags
      Overrides:
      copyAttributes in class Component
      Parameters:
      attributesToCopy - the attributes to copy.
      See Also:
    • lazyEvaluation

      protected boolean lazyEvaluation()
      Used to avoid evaluating attributes in evaluateParams() or evaluateExtraParams() as evaluation will happen in tag's template
      Returns:
      boolean false if evaluation should be performed in ftl