2.8. Selectively Disabling Actions
Problem
You want to disable an action using a custom property that can be set
on the action
element in your
struts-config.xml
file; forwarding any requests to the disabled action to an
"under construction" page.
Solution
Create a custom
ActionMapping
extension (as shown in Example 2-16) that provides a
boolean property indicating if the action is disabled or not.
Example 2-16. Custom ActionMapping
import org.apache.struts.action.ActionMapping; public class DisablingActionMapping extends ActionMapping { private String disabled; private boolean actionDisabled = false; public String getDisabled( ) { return disabled; } public void setDisabled(String disabled) { this.disabled = disabled; actionDisabled = new Boolean(disabled).booleanValue( ); } public boolean isActionDisabled( ) { return actionDisabled; } }
This action mapping class can now be specified in the
struts-config.xml file. You set the
disabled
property to true
if an
action is to be disabled:
<action-mappings type="com.oreilly.strutsckbk.DisablingActionMapping">
<!-- Edit mail subscription -->
<action path="/editSubscription"
type="org.apache.struts.webapp.example.EditSubscriptionAction"
attribute="subscriptionForm"
scope="request"
validate="false">
<set-property property="disabled" value="true"/>
<forward name="failure" path="/mainMenu.jsp"/>
<forward name="success" path="/subscription.jsp"/>
</action>
Then create a custom RequestProcessor
, such as the
one shown in Example 2-17, that handles the ...
Get Jakarta Struts Cookbook now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.