have tried the following code also on the ActionForm.reset method:

    public void reset(ActionMapping mapping, HttpServletRequest request){

        FWLog log = FWLogManager.getLog("UploadActionForm");
        log.debug("Entering UploadActionForm.reset");

        MultipartRequestWrapper multipartRequest = new
MultipartRequestWrapper(request);

        Enumeration wrapperParameterNames =
multipartRequest.getParameterNames();

        System.out.println("wrapperparameterNames = ");
        while (wrapperParameterNames.hasMoreElements()){
            System.out.println((String)wrapperParameterNames.nextElement());
        }

        request = multipartRequest.getRequest();

        Enumeration parameterNames = multipartRequest.getParameterNames();

        System.out.println("parameterNames = ");
        while (parameterNames.hasMoreElements()){
            System.out.println((String)parameterNames.nextElement());
        }

        System.out.println("mapping.getParameter() = " +
mapping.getParameter());
 
System.out.println("multipartRequest.getParameter(mapping.getParameter()) =
");
 
System.out.println(multipartRequest.getParameter(mapping.getParameter()));

        System.out.println("multipartRequest = " +
multipartRequest.toString());

        System.out.println("request.getParameter(mapping.getParameter()) =
");
        System.out.println(request.getParameter(mapping.getParameter()));

        System.out.println("request = " + request.toString());

        if
(request.getParameter(mapping.getParameter()).equals(TrcCommonConstants.TRC_
STAGE_ACTION_METHOD)){
...

and this results in:

wrapperparameterNames =
parameterNames =
mapping.getParameter() = userAction
multipartRequest.getParameter(mapping.getParameter()) =
null
multipartRequest = org.apache.struts.upload.MultipartRequestWrapper@e3b13
request.getParameter(mapping.getParameter()) =
null
request = org.apache.struts.upload.MultipartRequestWrapper@48867b

java.lang.NullPointerException
        at com...UploadActionForm.reset(Unknown Source)


Does this mean that struts doesn't support request parameters with multipart
forms ??


Hey there guys n gals,

I seem to be loosing a parameter of my request when I submit a multi-part
form.

In the page I have a,

<input type="hidden" name="userAction"/>

this is written to by a call to,

<a
href="javascript:submitFormDispatch('trcCbmUploadForm','performUpload')">LIN
K</a>

which calls,

        function submitFormDispatch( formname, value )
        {
                var form = document.forms[ formname ];
                var elements = form.elements;

                elements[ 'userAction' ].value = value;
                alert("userAction =" + value);
                form.submit();
        }

Now I know this is working because the alert pops up to tell me.

When the reset method is called in the ActionForm I get a null pointer
exception because no parameter is found for the action mapping set in the
struts-config.xml,

        <action path="/.../upload"
                type="com...UploadAction"
                name="UploadForm"
                scope="session"
                validate="true"
                input="/.../upload.jsp"
                parameter="userAction">
            <forward name="displayInputForm"
path="/.../upload.jsp"></forward>
            <forward name="confirmUpload"
path="/.../Upload_confirmed.jsp"></forward>
            <forward name="fail" path="/.../error"/>
        </action>

And then in the form I've been using,

    public void reset(ActionMapping mapping, HttpServletRequest request){

        FWLog log = FWLogManager.getLog("UploadActionForm");
        log.debug("Entering UploadActionForm.reset");

        System.out.println("mapping.getParameter() = " +
mapping.getParameter());
        System.out.println("request.getParameter(mapping.getParameter()) =
");
        System.out.println(request.getParameter(mapping.getParameter()));

        System.out.println("request = " + request.toString());

        if
(request.getParameter(mapping.getParameter()).equals(TrcCommonConstants.TRC_
STAGE_ACTION_METHOD)){

            this.emailText = null;
            contactId = null;
            log.debug("email text has been reset.");
        }

        log.debug("Entering TrcCbmUploadActionForm.reset");
    }

When all this executes this outputs

mapping.getParameter() = userAction
request.getParameter(mapping.getParameter()) =
null
request = org.apache.struts.upload.MultipartRequestWrapper@799ca4

java.lang.NullPointerException
        at com...web.action.UploadActionForm.reset(Unknown Source)

Guessing that a Multipart request is a different request object.

Have you got any suggestions ?

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

Reply via email to