struts-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Relph,Brian" <Brian.Re...@Cerner.com>
Subject RE: Problem getting request parameters in HTTP GET in Struts 2
Date Tue, 17 Mar 2009 23:11:39 GMT

First, the post you referenced had a follow up a few days later, and the custom mapper was
not actually needed, there was instead a bug in the oracle app server that was fixed in a
later release.

Second, let struts handle the type conversion for you.  You don't need to convert from a string
to an integer, it will be done automatically if the parameter names matches the bean property.


Brian Relph

-----Original Message-----
From: Dave Newton [mailto:newton.dave@yahoo.com] 
Sent: Tuesday, March 17, 2009 6:05 PM
To: Struts Users Mailing List
Subject: Re: Problem getting request parameters in HTTP GET in Struts 2

What's the action mapping look like (along with its package definition)?

Dave

Duan, Bin wrote:
> We found a post in the mailing list that reported the same problem. Check it out. The
final solution of it was that the user had to implement a customized map class, which was
pretty nasty. Is this something we have to go through, or is there better solution? Is this
a bug in S2? Check it out.
> 
> http://www.mail-archive.com/user@struts.apache.org/msg64440.html
> 
> -----Original Message-----
> From: Musachy Barroso [mailto:musachy@gmail.com]
> Sent: Tuesday, March 17, 2009 5:12 PM
> To: Struts Users Mailing List
> Subject: Re: Problem getting request parameters in HTTP GET in Struts 
> 2
> 
> Why don't you try the blank application or showcase? if they work, 
> then at least you know it is not some container config, but your app.
> 
> musachy
> 
> On Tue, Mar 17, 2009 at 5:06 PM, Duan, Bin <BDuan@claritas.com> wrote:
>> It doesn't work. I still get null for the parameter.
>>
>> Some additional info. The request is actually a StrutsRequestWrapper instance. I
did the debug, the whole http content on the server side looks like this. You can see the
drProviderId is in the get.
>>
>> GET /providerDetail.action?drProviderId=581 HTTP/1.1T accept: 
>> image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, 
>> application/x-shockwave-flash, application/vnd.ms-excel, 
>> application/vnd.ms-powerpoint, application/msword, 
>> application/xaml+xml, application/vnd.ms-xpsdocument, 
>> application/x-ms-xbap, application/x-ms-application, 
>> application/x-silverlight, application/x-silverlight-2-b2, */*6
>>
>> I called request.getRequestURI(), the result is /providerDetail.action. It missed
the parameter section.
>>
>> Another thought where might be the problem?
>>
>> -----Original Message-----
>> From: Musachy Barroso [mailto:musachy@gmail.com]
>> Sent: Tuesday, March 17, 2009 4:32 PM
>> To: Struts Users Mailing List
>> Subject: Re: Problem getting request parameters in HTTP GET in Struts 
>> 2
>>
>> can you try the new filters?
>>
>>     <filter>
>>        <filter-name>struts-prepare</filter-name>
>>        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareFilter</filter-class>
>>    </filter>
>>
>>    <filter>
>>        <filter-name>struts-execute</filter-name>
>>        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsExecuteFilter</filter-class>
>>    </filter>
>>
>>   <filter-mapping>
>>        <filter-name>struts-prepare</filter-name>
>>        <url-pattern>/*</url-pattern>
>>    </filter-mapping>
>>
>>    <filter-mapping>
>>        <filter-name>struts-execute</filter-name>
>>        <url-pattern>/*</url-pattern>
>>    </filter-mapping>
>>
>>
>> musachy
>>
>> On Tue, Mar 17, 2009 at 4:21 PM, Duan, Bin <BDuan@claritas.com> wrote:
>>> Musachy,
>>>
>>> The web.xml is very simple since we just started this project. Here it is. Please
advise:
>>>
>>>
>>> <?xml version = '1.0' encoding = 'windows-1252'?> <web-app 
>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee">
>>>    <description>New MMS Website</description>
>>>
>>>    <filter>
>>>        <filter-name>struts2</filter-name>
>>>        <filter-class>
>>>            org.apache.struts2.dispatcher.FilterDispatcher
>>>        </filter-class>
>>>    </filter>
>>>    <filter-mapping>
>>>        <filter-name>struts2</filter-name>
>>>        <url-pattern>/*</url-pattern>
>>>    </filter-mapping>
>>>    <session-config>
>>>        <session-timeout>240</session-timeout>
>>>    </session-config>
>>>    <mime-mapping>
>>>        <extension>html</extension>
>>>        <mime-type>text/html</mime-type>
>>>    </mime-mapping>
>>>    <mime-mapping>
>>>        <extension>txt</extension>
>>>        <mime-type>text/plain</mime-type>
>>>    </mime-mapping>
>>> </web-app>
>>>
>>> -----Original Message-----
>>> From: Musachy Barroso [mailto:musachy@gmail.com]
>>> Sent: Tuesday, March 17, 2009 4:17 PM
>>> To: Struts Users Mailing List
>>> Subject: Re: Problem getting request parameters in HTTP GET in 
>>> Struts 2
>>>
>>> Something is very wrong in your configuration. Can you post your web.xml?
>>>
>>> musachy
>>>
>>> On Tue, Mar 17, 2009 at 3:50 PM, Duan, Bin <BDuan@claritas.com> wrote:
>>>> Thanks for the response.
>>>>
>>>> I did that. The request obtained by implementing RequestAware is the same
as the one obtained from ServletActionRequest.getRequest().
>>>>
>>>> None of them worked. Actually, I did get the parameter map from the request,
and it contained null data.
>>>>
>>>> Have you tried the scenario, did it work for your application?
>>>>
>>>> -----Original Message-----
>>>> From: Struts Two [mailto:strutstwo@yahoo.ca]
>>>> Sent: Tuesday, March 17, 2009 3:46 PM
>>>> To: Struts Users Mailing List
>>>> Subject: Re: Problem getting request parameters in HTTP GET in 
>>>> Struts 2
>>>>
>>>>
>>>> Why do n't you let your action implement RequestAware interface and then
get parameter from the request map.
>>>>
>>>> --- On Tue, 3/17/09, Duan, Bin <BDuan@claritas.com> wrote:
>>>>
>>>>> From: Duan, Bin <BDuan@claritas.com>
>>>>> Subject: Problem getting request parameters in HTTP GET in Struts 
>>>>> 2
>>>>> To: user@struts.apache.org
>>>>> Received: Tuesday, March 17, 2009, 7:01 PM I was trying to get a 
>>>>> parameter from a Http GET. The get from jsp looks like this:
>>>>>
>>>>> <a
>>>>> href=/providerDetail.action?drProviderId=1000>Provider
>>>>> Name
>>>>>
>>>>> The providerDetail.action maps to ProviderAction class. In the 
>>>>> action class, I have a setDrProviderId() method, but found the id 
>>>>> was not set.
>>>>> Then I tried to get the id from
>>>>> ServletActionRequest.getRequest().getParameter("drProviderId"),
>>>>> but
>>>>> still did not get anything.
>>>>>
>>>>>
>>>>>
>>>>> I debugged the code, in the request object, I saw request input as 
>>>>> "GET /providerDetail.action?drProviderId=1000", this pretty much 
>>>>> meant the parameter was sent to the server side correctly. But
>>>>> request.getParameter("drProviderId") returned me null.
>>>>>
>>>>>
>>>>>
>>>>> If I switch to use form POST, my setDrProviderId() method was 
>>>>> still NOT called, but I could get the id from 
>>>>> request.getParameter("drProviderId").
>>>>>
>>>>>
>>>>>
>>>>> This problem will almost be a show stopper for our project to use 
>>>>> Struts. Anybody has any ideas of what could be wrong?
>>>>>
>>>>>
>>>>>
>>>>> I am using Struts 2.1.6. I tried both on oc4j and JBoss.
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> Following is my struts.xml file
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> <struts>
>>>>>
>>>>>
>>>>>
>>>>>     <package name="dataReceiving"
>>>>> extends="struts-default">
>>>>>
>>>>>
>>>>>
>>>>>         <action name="listProvider"
>>>>> method="listProvider"
>>>>>
>>>>>
>>>>> class="com.claritas.mms.radish.dataReceiving.DrProviderAction">
>>>>>
>>>>>
>>>>> <result>/dataReceiving/ProviderList.jsp</result>
>>>>>
>>>>>         </action>
>>>>>
>>>>>         <action
>>>>> name="providerDetail" method="providerDetail"
>>>>>
>>>>>
>>>>> class="com.claritas.mms.radish.dataReceiving.DrProviderAction">
>>>>>
>>>>>
>>>>> <result>/dataReceiving/ProviderDetails.jsp</result>
>>>>>
>>>>>         </action>
>>>>>
>>>>>     </package>
>>>>>
>>>>>
>>>>>
>>>>> </struts>
>>>>>
>>>>>
>>>>>
>>>>> Following is my DrProviderAction class
>>>>>
>>>>>
>>>>>
>>>>>     public void setDrProviderId(String id)
>>>>>
>>>>>     {
>>>>>
>>>>>         this.drProviderId = new
>>>>> Integer(id).intValue();
>>>>>
>>>>> }
>>>>>
>>>>>
>>>>>
>>>>>     public String providerDetail()
>>>>>
>>>>>     {
>>>>>
>>>>>         Map map =
>>>>> request.getParameterMap();
>>>>>
>>>>>
>>>>>
>>>>>         String sid =
>>>>> request.getParameter("drProviderId");
>>>>>
>>>>>         drProviderId = new
>>>>> Integer(sid).intValue();
>>>>>
>>>>>         //check if the
>>>>>
>>>>>         if(session != null)
>>>>>
>>>>>         {
>>>>>
>>>>>             Map<Integer,
>>>>> DrProvider> providerMap =
>>>>> (Map)session.get("provider_map");
>>>>>
>>>>>             if(providerMap !=
>>>>> null)
>>>>>
>>>>>             {
>>>>>
>>>>>
>>>>> provider = providerMap.get(drProviderId);
>>>>>
>>>>>             }
>>>>>
>>>>>
>>>>>         }
>>>>>
>>>>>         else //go to database
>>>>>
>>>>>         {
>>>>>
>>>>>             provider =
>>>>> service.getProvider(drProviderId);
>>>>>
>>>>>         }
>>>>>
>>>>>
>>>>>
>>>>>         return SUCCESS;
>>>>>
>>>>>
>>>>>
>>>>>     }
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>>      
>>>> __________________________________________________________________
>>>> Instant Messaging, free SMS, sharing photos and more... Try the new 
>>>> Yahoo! Canada Messenger at http://ca.beta.messenger.yahoo.com/
>>>>
>>>>
>>>> -------------------------------------------------------------------
>>>> -- To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
>>>> For additional commands, e-mail: user-help@struts.apache.org
>>>>
>>>>
>>>> -------------------------------------------------------------------
>>>> -- To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
>>>> For additional commands, e-mail: user-help@struts.apache.org
>>>>
>>>>
>>>
>>>
>>> --
>>> "Hey you! Would you help me to carry the stone?" Pink Floyd
>>>
>>> --------------------------------------------------------------------
>>> - To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
>>> For additional commands, e-mail: user-help@struts.apache.org
>>>
>>>
>>> --------------------------------------------------------------------
>>> - To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
>>> For additional commands, e-mail: user-help@struts.apache.org
>>>
>>>
>>
>>
>> --
>> "Hey you! Would you help me to carry the stone?" Pink Floyd
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
>> For additional commands, e-mail: user-help@struts.apache.org
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
>> For additional commands, e-mail: user-help@struts.apache.org
>>
>>
> 
> 
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org

----------------------------------------------------------------------
CONFIDENTIALITY NOTICE This message and any included attachments are from Cerner Corporation
and are intended only for the addressee. The information contained in this message is confidential
and may constitute inside or non-public information under international, federal, or state
securities laws. Unauthorized forwarding, printing, copying, distribution, or use of such
information is strictly prohibited and may be unlawful. If you are not the addressee, please
promptly delete this message and notify the sender of the delivery error by e-mail or you
may call Cerner's corporate offices in Kansas City, Missouri, U.S.A at (+1) (816)221-1024.

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org


Mime
View raw message