Hi,

        I've persuaded my project team to upgrade from Struts 1.1 to Struts
1.2.9, simply to allow use of the LookupDispatchAction. However, it's not
working correctly for me. Have I misunderstood the requirements, or is there
something else obvious I'm doing wrong? I followed the instructions found in
the Javadoc at
http://struts.apache.org/1.2.x/api/org/apache/struts/actions/LookupDispatchA
ction.html
<http://struts.apache.org/1.2.x/api/org/apache/struts/actions/LookupDispatch
Action.html> 

My JSP (form is scContactCardOptions):

<html:submit value="View Existing Order"
                                property="operation" /> &nbsp; <html:submit
                                value="orderReplacement"
property="operation" /> &nbsp; <html:submit
                                value="Save Service User Number"
property="operation" />


My struts-config.xml:

                <action path="/scContactCardOptions"
type="com.rbsg.application.serviceuserweb.actions.ScContactCardOptionsAction
" name="scContactCardOptionsBean" parameter="operation">
                        <forward name="savesuno"
path="ScContactCardPath"></forward>
                        <forward name="viewexistingorder"
path="ScContactOrderPath"></forward>
                        <forward name="replacementorder"
path="ScReplaceOrderPath"></forward>
                </action>

My action class:

public class ScContactCardOptionsAction extends LookupDispatchAction {

        ActionMessages errors = null;
        ActionForward forward = null;

        /* (non-Javadoc)
         * @see
org.apache.struts.actions.LookupDispatchAction#getKeyMethodMap()
         */
        protected Map getKeyMethodMap() {
                System.out.println("executing getKeyMethodMap()");
                Map map = new HashMap();
                map.put("orderReplacement", "orderReplacement");
                map.put("View Existing Order", "viewExistingOrder");
                map.put("Save Service User Number", "saveSUNo");
                return map;
        }

        public ActionForward saveSUNo(
                ActionMapping mapping,
                ActionForm form,
                HttpServletRequest request,
                HttpServletResponse response)
                throws Exception {

                errors = new ActionMessages();
                forward = new ActionForward();
                getUserPreferences(mapping, request);

                ScContactCardOptionsFormBean sssb =
(ScContactCardOptionsFormBean) form;
                String contactID = sssb.getContactID();
                String serviceUserNo = sssb.getServiceUserNo();

                if (errors.isEmpty()) {
                        // Forward control to the appropriate 'success' URI
(change name as desired)
                        forward = mapping.findForward("savesuno");
                } else {
                        // If a message is required, save the specified
key(s)
                        // into the request for use by the <struts:errors>
tag.
                        saveErrors(request, errors);
                }

                // Finish with
                return (forward);

        }

Further methods called orderReplacement and viewExistingOrder are defined in
an indentical fashion to saveSUNo. 

The exact error message is:

[24/11/06 14:40:21:451 GMT] 6aa82178 DispatchActio E
org.apache.struts.actions.DispatchAction  Action[/scContactCardOptions] does
not contain method named 'View Existing Order'
[24/11/06 14:40:21:451 GMT] 6aa82178 DispatchActio E
org.apache.struts.actions.DispatchAction  TRAS0014I: The following exception
was logged java.lang.NoSuchMethodException:
com.rbsg.application.serviceuserweb.actions.ScContactCardOptionsAction.View
Existing Order(org.apache.struts.action.ActionMapping,
org.apache.struts.action.ActionForm, javax.servlet.http.HttpServletRequest,
javax.servlet.http.HttpServletResponse)

Basically, the getKeyMethodMap method does not seem to be executed.

Any assistance would be gratefully received.




                                 Regards,

                                         Jim



The Royal Bank of Scotland plc, Registered in Scotland No. 90312. Registered 
Office: 36 St Andrew Square, Edinburgh EH2 2YB

Authorised and regulated by the Financial Services Authority.

This e-mail message is confidential and for use by the addressee only. If the 
message is received by anyone other than the addressee, please return the 
message to the sender by replying to it and then delete the message from your 
computer. Internet e-mails are not necessarily secure. The Royal Bank of 
Scotland plc does not accept responsibility for changes made to this message 
after it was sent.

Whilst all reasonable care has been taken to avoid the transmission of viruses, 
it is the responsibility of the recipient to ensure that the onward 
transmission, opening or use of this message and any attachments will not 
adversely affect its systems or data. No responsibility is accepted by The 
Royal Bank of Scotland plc in this regard and the recipient should carry out 
such virus and other checks as it considers appropriate.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to