tarek.nabil wrote:

Thanks Erik.

I like the idea of using the same action with different URLs but how do
you do that? The only way I can think of is changing the action of the
form when clicking any of the buttons using JavaScript, is that what you
meant?



Well that is a common way to do it. I was thinking of the typical case of add vs. update -- two actions that could share the same page, ActionForm and Action. Here you don't need JavaScript. There are two GET requests for the page, something like "/controller/viewAdd" and "/controller/viewUpdate". When the user requests the add page, you set the form action to "/controller/saveAdd", and when the user requests the update page, you set the form action to "/controller/saveUpdate", or something like that, dynamically:


<html:form action="${action}" focus="foo">

However, it sounds like you have a more complicated scenario, so I don't know whether you would be forced to change the action URL with JavaScript in your case.

Erik

Actually, for our client, clientside validations are more important than
server-side ones. The reason I'm doing server-side validations is that I
know that client-side validations can be circumvented and I don't want
that to cause an error screen to appear.

As for  validwhen, I think it's worth giving it a shot to see if it can
be plugged in as a custom validator.

-----Original Message-----
From: Erik Weber [mailto:[EMAIL PROTECTED] Sent: Wednesday, April 20, 2005 8:50 AM
To: Struts Users Mailing List
Subject: Re: requiredif




tarek.nabil wrote:



Hi Erik,

Actually after some reasoning about the application I came to a conclusion that I will not use the integration between Struts and the Validator framework. I might still use the ready made validators, but I





will call them explicitly.





Yeah don't forget that you can still use the Validator plugin on the
server side, even if you don't use the Validator brand of ActionForms. See Rick Reumann's site for examples of this (if I'm not mistaken; I
know he uses this technique).




The reason is, the pages in the application are designed to do search, add, edit and delete functionalities in the same page. We do this using





the same form, and the button the user presses is what determines the operation. This makes all the validations kind of conditional. For example, the id will be mandatory if you're deleting but the name will be mandatory if you're adding and so on. As a result, to support this, I will have to declare all my required validations using requiredif since usually most validations depend on required.





Well, there is an easy way to conquer this problem -- you just use multiple action mappings for the same Action that use the same ActionForm. All you need is a different URL then. Each action mapping has a different name (an alias to the same ActionForm) -- triggering a different section of your validation.xml file to be used for validation.

This way you can validate only the fields required for the given use
case, and yet you have a single Action and a single ActionForm, and even
a single form JSP. Have you considered this?




Since requiredif does not have a clientside script part, that means I will only benefit from server side validation, that's problem number one.




But client side validation is only a luxury for the user while server side validation is mandatory, so I don't understand your statement here.



Problem number two is that declaring all required validations as requiredif will be very time consuming, since the syntax for requiredif





is a bit awkward and very verbose. Adding the fact that requiredif is not supported in the version I'm using makes the integration almost meaningless. As you see, no clientside, time consuming simple validations and above all, it's not currently working. That led me to the decision to just write my own validation code in the validate method.





I'm really confused about what you are trying to do here. requiredif is for a case where, for example, you have a drop down box paired with a text field. You only want the text field value to be validated if the drop down box value is equal to "foo". Are you trying to use it to accomplish something else? (Like what I describe in my second paragraph?)



The only thing that would make me change my mind is if I were able to use validwhen with 1.1b2. Only then will this make sense, although even





in this case I would still have to write my own clientside validations.
Or wouldn't I? Depends on whether validwhen generates javascript for clientside validation. Does it do that? And do you think this is possible?






I won't comment on the client side validation, because I don't use it. The only client side validation I tend to use (if at all) is a blank
field check when the form happens to be very large, unless of course my
customer wants something else. If the customer wants something else, I
give him a desktop application. :)


I also don't know about retrofitting validwhen for 1.1, but again, the
idea arises that perhaps you could embed validwhen (or something just
like it) as a custom validator? Does the version of Struts you are using
support custom validators?

Hope that helps,

Erik



Thanks

-----Original Message-----
From: Erik Weber [mailto:[EMAIL PROTECTED]
Sent: Tuesday, April 19, 2005 7:54 PM
To: Struts Users Mailing List
Subject: Re: requiredif

Oh, I'm sorry. I pulled that from the last release of 1.1. Zoinks, you are stuck with a pre-1.1 version? Perhaps you could write a custom validator plugin that basically does the same thing?

tarek.nabil wrote:





Hi Erik,

I tried it and it didn't work. I checked out the validator and struts jar files and it turned out that the org.apache.struts.validator.FieldChecks class does not exist in either





of them. Is it possible that it was introduced after 1.1b2? I'm sure it's in RC1 because I'm using the documentation shipped in 1.1RC1.

Thanks again for your help.

-----Original Message-----
From: tarek.nabil
Sent: Tuesday, April 19, 2005 7:41 PM
To: Struts Users Mailing List
Subject: RE: requiredif

Thanks Erik.

I was wondering, is there a client side JavaScript part?

Also, is it possible to use validwhen with the old versions of struts (1.1b2).

Thanks for your help.

-----Original Message-----
From: Erik Weber [mailto:[EMAIL PROTECTED]
Sent: Tuesday, April 19, 2005 3:24 PM
To: Struts Users Mailing List
Subject: Re: requiredif


<!-- requiredif --> <validator name="requiredif" classname="org.apache.struts.validator.FieldChecks" method="validateRequiredIf" methodParams="java.lang.Object,

org.apache.commons.validator.ValidatorAction,
                          org.apache.commons.validator.Field,
                          org.apache.struts.action.ActionErrors,
                          org.apache.commons.validator.Validator,
                          javax.servlet.http.HttpServletRequest"
                     msg="errors.required"/>


Erik


tarek.nabil wrote:







Hi,

I'm stuck with Struts 1.1b2 and I need to do some conditional validation. AFAIK, the way to do this for this version is using the requiredif validator. The problem is, I cannot find any reference information on how to add this validator to the validator-rules.xml configuration file.

Please advise on how to do this and if there's a better way to do this








with this old version. For example, is it possible to configure the old










Struts/Validator versions to use validwhen?

Any help is appreciated.

Tarek Nabil


--------------------------------------------------------------------- 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]





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



Reply via email to