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;
}