Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

...

Without using the wildcard method selection technique, I'd have to write an action mapping node in the Struts 2 configuration file for each separate action I'd want to call. For example:

Code Block
xml
xml
titleStruts.xml Action Configurationxml
<action name="createPerson" class="org.apache.struts.tutorials.wildcardmethod.action.PersonAction" method="create">
  <result name="input">input.jsp</result>
  <result name="success">view.jsp</result>
</action>

<action name="editPerson" class="org.apache.struts.tutorials.wildcardmethod.action.PersonAction" method="edit">
  <result name="input">input.jsp</result>
  <result name="success">view.jsp</result>
</action>

...

To implement the wildcard method selection technique to enable the Struts 2 framework to dynamically select the correct method to call at runtime you just need to use the wildcard character, *, in your name value and an attribute value place holder ( {1} ) for the method value. For example:

Code Block
xml
xml
titleStruts.xml Action Configuration Using Wildcard Method Selectionxml
<action name="*Person" class="org.apache.struts.tutorials.wildcardmethod.action.PersonAction" method="{1}">
  <result name="success">view.jsp</result>
  <result name="input">input.jsp</result>
</action>

...