hi, javax.faces.ServletException: "You have requested a conversion for type [ Lmy.app.CarType;, but there is no by-type converter registered for this type"
as seen from exception above, a converter for string array is not needed.. in fact, exception says it can not find converter for "array of my.app.CarType".. if it would ask for a string array converter, your suggestion may help but it is looking for a "converter of my domain type's array".. so, i can not declare a converter for all my domain types' arrays (in this case, i have to declare converters for arrays of my.app.PhoneType, my.app.CarType, my.app.DocumentType, etc...)... hundreds of types... note that the above error exists at the current jars of shale framework... but, if we put your fix(validate method looking submittedvalues instead of converted values - SHALE-412<https://issues.apache.org/struts/browse/SHALE-412>) from a previous conversation into usage, we can overcome this issue by adding a string array converter... because in this case, it will look for conversion between String[] and String... as a result, it seems that your solution is wise and validator should take submitted values into accout.. so, i want to implement the same thing in our app too.. i can put it directly but it's better to use shale's built codes.. but, i can not find your fix for SHALE-412 issue in nightly builds... can you check it? and please direct me if i'm looking at wrong place?
Sounds like your doing some creating stuff with the validator.
Yes, i've customized so many parts at both shale-validator and commons-validator jars... our project needs urgent validation requirements.. so, i have injected some extra solutions into framework.. nowadays i'm working on validating only some specific(grouped) fields for only some specific submits.. This means; for instance, a combo will only validate A,B,C fields while another button(in the same form) will validate only E,F,G fields... This is a hard requirement :).. and needs core changes at framework.. that's why i have to track and hold all my changes strictly and go parallel with original shale code at the same time... best regards, hasan... On 3/17/07, Gary VanMatre <[EMAIL PROTECTED] > wrote:
>From: "Hasan Turksoy" < [EMAIL PROTECTED]> > > i have implemented a workaround for this serverside required problem... > shortly: if validatorscript sets the required attribute, as you say, JSF > won't call my serverside validator when that field's value is empty... to > overcome this, i've commented the validatorscript's required attribute > setting code.. this means JSF can't see that field as required and not call > any required validator for that field... So, how can we call serverside > required validators? I've implemented an > idea from myfaces wiki.. > > Implementation in short; i have developed an > RequiredValidatorChecker component.. it traverses all the component tree and > calls validate methods for found required validators... > i have entered a blog about this solution... > > So, you can think that serverside required validations are being called when > needed... > > In fact, the problem is ConverterHelper can not handle array/list types in > current situation... although i can't think of any such scenario, somehow a > validation may be necessary to validate an array/list value.. so, how should > it work in this case? (May be such a scenario is not possible ;) ) > Shale Clay has an example of using a converter for string arrays[1][2]. I don't understand your problem with the validators. I think I would have tried using the "immediate" flag on the commands to stop short of validation. Or, looked at one of tomahawk or trinidad's subform components but you might have a complex layout that won't let you do that. Sounds like your doing some creating stuff with the validator. [1] http://svn.apache.org/viewvc/shale/framework/trunk/shale-clay/src/main/java/org/apache/shale/clay/convert/StringArrayConverter.java?view=markup [2] http://svn.apache.org/viewvc/shale/framework/trunk/shale-clay/src/main/resources/META-INF/faces-config.xml?view=markup > Hasan... > > > On 3/16/07, Gary VanMatre wrote: > > > > > > The server-side "required" commons validator rule is kind of bogus. I've > > only seen it useful > > for client side validation. This is because JSF requires a value before > > it will even invoke > > the server side validation logic. A component's validator will not be > > invoked if the component doesn't have a value. There is a separate > > "required" attribute for components that are EditableValueHolders. > > > > The shale ValidatorScript component, that must be added at the end of the > > page, looks through the component tree and toggles on the required attribute > > for components that include the shale commons validator required server side > > rule. So, the ValidatorScript component is needed even if you are only > > using sever side rules. > > > > Gary
