Class Param

java.lang.Object
org.apache.struts2.components.Component
org.apache.struts2.components.Param

public class Param extends Component

This tag can be used to parameterize other tags.
The include tag and bean tag are examples of such tags.

The parameters can be added with or without a name as key. If the tag provides a name attribute the parameters are added using the addParamter method. For unnamed parameters the Tag must implement the Param.UnnamedParametric interface defined in this class (e.g. The TextTag does this).

This tag has the following two paramters.

  • name (String) - the name of the parameter
  • value (Object) - the value of the parameter
  • suppressEmptyParameters (boolean) - whether to suppress this parameter if empty

Note: When you declare the param tag, the value can be defined in either a value attribute or as text between the start and end tag. Struts behaves a bit different according to these two situations. This is best illustrated using an example:
<param name="color">blue</param> <-- (A) -->
<param name="color" value="blue"/> <-- (B) -->
In the first situation (A) the value would be evaluated to the stack as a java.lang.String object. And in situation (B) the value would be evaluated to the stack as a java.lang.Object object.
For more information see WW-808.

Examples

 <ui:component>
  <ui:param name="key"     value="[0]"/>
  <ui:param name="value"   value="[1]"/>
  <ui:param name="context" value="[2]"/>
 </ui:component>
 

Whether to suppress empty parameters:

 <s:url action="eventAdd">
   <s:param name="bean.searchString" value="%{bean.searchString}" />
   <s:param name="bean.filter" value="%{bean.filter}" />
   <s:param name="bean.pageNum" value="%{pager.pageNumber}" suppressEmptyParameters="true" />
 </s:url>
 

where the key will be the identifier and the value the result of an OGNL expression run against the current ValueStack.

This second example demonstrates how the text tag can use parameters from this param tag.

 <s:text name="cart.total.cost">
     <s:param value="#session.cartTotal"/>
 </s:text>
 
See Also:
  • Field Details

    • name

      protected String name
    • value

      protected String value
    • suppressEmptyParameters

      protected boolean suppressEmptyParameters
  • Constructor Details

  • Method Details

    • 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
    • usesBody

      public boolean usesBody()
      Description copied from class: Component
      Overwrite to set if body should be used.
      Overrides:
      usesBody in class Component
      Returns:
      always false for this component.
    • setName

      public void setName(String name)
    • setValue

      public void setValue(String value)
    • setSuppressEmptyParameters

      public void setSuppressEmptyParameters(boolean suppressEmptyParameters)