Sorry, that's the only property you do NOT want to copy! I mean all the others.

On 03/31/2004 06:44 PM Adam Hardy wrote:
It's worth trying it with a new mapping then. Copy across the relevant bits from the real mapping, in pseudocode:

newMapping = new Mapping();
newMapping.setName(origMapping.getName());
etc.



On 03/31/2004 06:37 PM Takhar, Sandeep wrote:

I thought there used to be a way in the struts-config to say "use this form name even though we are using the same class"

name=""
property=""??

It would still require a different mapping...if it is true


sandeep


-----Original Message-----
From: Paul Barry [mailto:[EMAIL PROTECTED]
Sent: Wednesday, March 31, 2004 11:29 AM
To: Struts Users Mailing List
Subject: Re: validator and dispatch action


I get this exception:


javax.servlet.ServletException: Configuration is frozen

Adam Hardy wrote:


I mean, try changing it in the code in your action when you want to validate, & change it back afterwards to its previous value when done. Is that what you tried?

String oldName = mapping.getName();
mapping.setName("widget-edit");
form.validate(mapping, request);
mapping.setName(oldName);



On 03/31/2004 05:52 PM Paul Barry wrote:


The name of the action-mapping has to correspond to the name of the form-bean.

Adam Hardy wrote:


If I really wanted to stick with your set-up, I see a way it might be possible, although I have not done this myself.

Try changing the 'name' attribute of the mapping to the validation that you defined in the validation.xml, e.g. 'widget-update' or 'widget-edit' and then call the validate() method.

My main worry is that ActionMapping may not like being changed, but if so, you could instantiate a new one.

Adam

On 03/31/2004 05:18 PM Paul Barry wrote:


Hello Everyone,

I am using the validator and dispatch actions and I am wonder what the best way to do this is. Consider that I have the following method in a dispatch action:

add - populates collections for drop-down lists, forwards to jsp page
create - needs to do validation and store in database
edit - needs to populate form with the data to edit, forward to jsp page
update - needs to do validation and update database
delete - needs to delete a record from the database


You can see how the validation would be different for these actions. Let's say this is a dispatch action related to administrating users. So for add, there would be no validation, it just gets the data need to build the form. For create, there might be a password and verify password field that need to be validated, but update wouldn't have those fields. Edit and delete would have to have a parameter for the primary key of the record to edit or delete.

Now I found something related at this link:

http://nagoya.apache.org/wiki/apachewiki.cgi?ValidatorDispatchAction

Which says to set validate to false in the struts-config.xml and then call validate method within each method of the dispatch action, like this:

ActionErrors errors = new ActionErrors();
errors = form.validate(mapping, request);

// Report any errors we have discovered back to the original form
if (!errors.isEmpty()) {
   saveErrors(request, errors);
   return  new ActionForward(mapping.getInput());
}

This seems like a really good solution to me, but there is one problem. How do you call a different set of validation rules, based on which method you are in? Doesn't this need to be something like this:

edit() {
   ActionErrors errors = new ActionErrors();
   errors = form.validateEdit(mapping, request);
}

update() {
   ActionErrors errors = new ActionErrors();
   errors = form.validateUpdate(mapping, request);
}

Because the rules for validating edit and update are different. You could define different action-mappings in your struts config for each dispatch method, and then a form in your validation.xml for each action-mapping, where the form name is the same as the path property of the action-mapping, but doesn't this defeat the purpose of the dispatch action? Why not just have separate actions at that point? I think the answer is to just not use the dispatch action with the validator, but I wanted to know if others had found a way to do it.

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




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





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

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






--
struts 1.1 + tomcat 5.0.16 + java 1.4.2
Linux 2.4.20 Debian


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



Reply via email to