struts-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Erik Weber <erikwe...@mindspring.com>
Subject Re: Design problem
Date Sat, 21 May 2005 18:38:13 GMT
The "parameter" attribute can have whatever value you want and be used 
however you want. I use it as a poor man's dispatch action.

For example, you have an actor called a "customer". The customer can log 
on and perform some actions with regard to his details. Let's say one 
action is to view, another is to edit. Since much of the logic could be 
shared between these two actions, you might want to use the same Struts 
Action class and ActionForm class to handle both actions.

So you might have two mappings that use the same Action, say, 
"/customer/viewDetails" and "/customer/editDetails". They are both 
mapped to the same name (ActionForm) and type (Action), but you can use 
parameter to distinguish, by setting it to "view" in one mapping and 
"edit" in the other. Your execute method can now switch on 
mapping.getParameter.

Since (as far as I know) the value can be whatever you want, you could 
probably come up with other ways to use it as well.

Erik


K Rajesh wrote:

>i have done only one struts application. but the below action tag, i
>can't understand......... could you anybody give me some code to let
>me know about the parameter="show" attribute
>
>Rj
>
>On 3/9/05, Nicolas De Loof <nicolas.deloof@capgemini.com> wrote:
>  
>
>>Each mapping have to define a parameter that sets the internal method to
>>be used
>>
>>You can use parameter as the method name :
>>
>><action path="/showEmployeeDetail"
>>           name="EmployeeForm"
>>           scope="request"
>>           validate="false"
>>           type="com.mycompany.EmployeeAction"
>>           parameter="show">
>>
>>and in execute() :
>>
>>if ("show".equals(getParameter))
>>   return show(mapping, form...)
>>else if ("update".equals(getParameter))
>>   return update(mapping, form...)
>>else
>>   return mapping.findForward("error");
>>
>>
>>Another way is to set parameter to the name of a request param that will
>>define the method to be used. Doing this, you have to add this parameter
>>to your request (using an hidden input). Doing this, you only need one
>>mapping as you can change validation behaviour according to this
>>attribute value.
>>
>><action path="/EmployeeDetail"
>>           name="EmployeeForm"
>>           scope="request"
>>           validate="false"
>>           type="com.mycompany.EmployeeAction"
>>           parameter="action">
>>
>>in form-bean validate() :
>>
>>String param = mapping.getParameter();
>>String action = request.getParameter(param)
>>if ("show".equals(action))
>>   // check employeId is set
>>else if ("update".equals(action))
>>   // check employee datas
>>
>>
>>Nico.
>>
>>Gaet a écrit :
>>
>>    
>>
>>>Thanks nicolas,
>>>
>>>I know the dispatch action but I don't see how to use it with 2 mappings:
>>>how the mappings "/showEmployeeDetail" and "/updateEmployeeDetail" will know
>>>the method to execute in my dispatch action?
>>>
>>>Thank you very much!
>>>
>>>----- Original Message -----
>>>From: "Nicolas De Loof" <nicolas.deloof@capgemini.com>
>>>To: "Struts Users Mailing List" <user@struts.apache.org>
>>>Sent: Wednesday, March 09, 2005 5:09 PM
>>>Subject: Re: Design problem
>>>
>>>
>>>
>>>
>>>      
>>>
>>>>You should define 2 mappings for detail :
>>>>
>>>>a "/showEmployeeDetail" without validation (or a unique rule employeeId
>>>>required)
>>>>a "/updateEmployeeDetail" with validation.
>>>>
>>>>Your action can be a dispatch action if you don't want to have 2 classes.
>>>>
>>>>Nico.
>>>>
>>>>Gaet a écrit :
>>>>
>>>>
>>>>
>>>>        
>>>>
>>>>>Hi,
>>>>>
>>>>>I have page with a list of employees.
>>>>>On that list, if you click on an employee name, I want to redirect to
an
>>>>>edit page...easy no?
>>>>>
>>>>>but how to define the complete process into struts-config? Below you will
>>>>>find my actual struts-config but here is my problem :
>>>>>I have defined the /EmployeeDetail action-mapping with validate equal
to
>>>>>false to be able to display the employee detail page without any
>>>>>check....but if the user made any changes on the employee information
in
>>>>>
>>>>>
>>>>>          
>>>>>
>>>the
>>>
>>>
>>>      
>>>
>>>>>detailled page, the same action is called and then i need to validate
my
>>>>>form! Maybe my configuration is not good....
>>>>>
>>>>>
>>>>><action path="/initEmployeeList"
>>>>>  type="com.ajo.InitEmployeeAction"
>>>>>  name="EmployeeForm"
>>>>>  validate="false"
>>>>>  parameter="reqCode"
>>>>>  scope="session">
>>>>>  <forward name="continue" path="/EmployeeListe.jsp"/>
>>>>>  <forward name="create" path="EmployeeDetail.do"/>
>>>>>  <forward name="update" path="EmployeeDetail.do"/>
>>>>></action>
>>>>><action path="/EmployeeDetail"
>>>>>  type="org.ajo.EmployeeAction"
>>>>>  name="EmployeeForm"
>>>>>  validate="false"
>>>>>  scope="request">
>>>>>  <forward name="continue" path="/EmployeeDetail.jsp"/>
>>>>></action>
>>>>>
>>>>>
>>>>>in EmployeeDetail.jsp, I have the following form definition :
>>>>>  <html:form action="/EmployeeDetail">...
>>>>>
>>>>>Thanks for your help
>>>>>
>>>>>
>>>>>---------------------------------------------------------------------
>>>>>To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
>>>>>For additional commands, e-mail: user-help@struts.apache.org
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>          
>>>>>
>>>>This message contains information that may be privileged or confidential
>>>>
>>>>
>>>>        
>>>>
>>>and is the property of the Capgemini Group. It is intended only for the
>>>person to whom it is addressed. If you are not the intended recipient,  you
>>>are not authorized to read, print, retain, copy, disseminate,  distribute,
>>>or use this message or any part thereof. If you receive this  message in
>>>error, please notify the sender immediately and delete all  copies of this
>>>message.
>>>
>>>
>>>      
>>>
>>>>---------------------------------------------------------------------
>>>>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
>>>
>>>
>>>
>>>      
>>>
>>This message contains information that may be privileged or confidential and is the
property of the Capgemini Group. It is intended only for the person to whom it is addressed.
If you are not the intended recipient,  you are not authorized to read, print, retain, copy,
disseminate,  distribute, or use this message or any part thereof. If you receive this  message
in error, please notify the sender immediately and delete all  copies of this message.
>>
>>
>>---------------------------------------------------------------------
>>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


Mime
View raw message