February 2005
Intermediate to advanced
528 pages
12h 53m
English
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.
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 ...