myfaces-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rudy De Busscher <rdebussc...@gmail.com>
Subject Re: A few extval questions
Date Mon, 19 Apr 2010 13:56:54 GMT
Johan,

I tried to recreate the problem that the properties file can't be found.
I made a war that contains only the ExtVal libs and the JSF jars (with
commons logging and JSTL) were placed in the lib directory of tomcat.
I used you config options (about locale config) in the webfaces-config file.

 Tested only standalone (outside the IDE) but couldn't find any issue. At
least for the @length annotation, there was no problem.

So at this time I can't help you any further with that. Sorry

regards
Rudy.


On 16 April 2010 16:13, Gerhard Petracek <gerhard.petracek@gmail.com> wrote:

> hi johan,
>
> >@Validator
> besides @Validator you can implement an annotation + an adapter [1] for
> your
> existing jsf validators which need special attributes.
>
> >"required"-attribute
> by default extval shouldn't modify the "required"-attribute (if you don't
> use a component lib which offers e.g. client-side validation (like
> trinidad)).
> however, some add-ons for dynamic validation (e.g. bypassing
> validation,...)
> have to reset the "required"-attribute in combination with component
> initialization. imo we should see a release of the mentioned add-on quite
> soon. i'll check (before the release) if the add-on follows the default
> approach of extval.
>
> regards,
> gerhard
>
> [1] http://jsfcentral.com/articles/myfaces_extval_3.html
>
> http://www.irian.at
>
> Your JSF powerhouse -
> JSF Consulting, Development and
> Courses in English and German
>
> Professional Support for Apache MyFaces
>
> 2010/4/16 Rudy De Busscher <rdebusscher@gmail.com>
>
> > Johan
> >
> > Do I understand that if I use the DEACTIVATE_COMPONENT_
> > >
> > > INITIALIZATION with
> > > value true I do disable the JSF validation at all in favor of the
> ExtVal
> > > validation?
> >
> >
> > The other way around.  With that parameter set to true, ExtVal doesn't
> > touch
> > the 'classic' attributes of the components in the tree like required and
> > maxLength.  So JSF validation runs unaltered, after the ExtVal
> validation.
> >
> > But it is much better and easier to go ExtVal all the way.  If you have
> > custom JSF validators written, you can reuse them with the @Validator
> > annotation.
> >
> > About the properties file, I'll try to recreate the situation and try to
> > find a solution.
> >
> > Rudy
> >
> >
> > On 16 April 2010 14:52, Johan.borchers <johan.borchers@solcon.nl> wrote:
> >
> > > Hello Rudy and others.
> > >
> > > Thanks for the answers .
> > >
> > > Q1
> > > Disappearing of the field value with JSF validation only appears if I
> > > first submit the form with 3 invalid fields and the JSF validation is
> > > triggered. After that the field is not updated anymore by selecting a
> row
> > > from the list. Only after pushing the refresh button of the browser
> > > restores the normal behavior. Maybe it's also something of RichFaces
> > > because clicking on the list an refreshing the detail panel is done by
> > > AJAX.
> > >
> > > But if you say just go all the way with ExtVal than the problem will
> > > disappear.
> > > Oke if I do understand, the required attribute of JSF is never working
> > > because Extval overrides it.
> > > The other JSF validators should do their work but it's better to go all
> > > the way with Extval.
> > >
> > > Do I understand that if I use the DEACTIVATE_COMPONENT_INITIALIZATION
> > with
> > > value true I do disable the JSF validation at all in favor of the
> ExtVal
> > > validation?
> > >
> > > Q2
> > > My Messages_nl_NL.properties file is my dutch replacement of the
> standard
> > > Messages_xx_XX.properties files delivered by Mojarra. I put this file
> in
> > > the default package (root) of my webapp classes.
> > >
> > > In the faces-config.xml file I have the following elements:
> > >  <locale-config>
> > >   <default-locale>nl_NL</default-locale>
> > >  </locale-config>
> > > and
> > >  <message-bundle>Messages</message-bundle>
> > >
> > > If I put the ExtVal libraries in the Tomcat lib directory Extval can't
> > > find the resource bundle.
> > > Even if I try to use the CUSTOM_MESSAGE_BUNDLE context-param to point
> to
> > > the messages bundle.
> > >
> > > After putting the ExtVal libraries in WEB-INF/lib my dutch messages are
> > > loaded even without setting the CUSTOM_MESSAGE_BUNDLE context-param.
> > >
> > > At this moment I'm not able to show this app in the internet.
> > > But it's a good idea to work on that because looking at the app is
> > > sometimes better than 1000 words.
> > >
> > > Regards Johan
> > >
> > > >Hi Johan,
> > > >
> > > >Q1
> > > >Yes, you can combine the JSF validation with ExtVal, like you already
> > > >found
> > > >out since you got 3 messages, 2 of extval and one of JSF.
> > > >Although, the idea is that you do everything with ExtVal.  You can use
> > > >@Length as a replacement for the f:validateLength tag.
> > > >
> > > >Except for the required attribute of the components. This required
> > > >attribute
> > > >is overwritten by the ExtVal code based on the annotations it find on
> > the
> > > >property. (so when no annotations set, attribute shouldn't be altered)
> > > >
> > > >You can deactivate that behaviour by specifying the web context
> > parameter
> > > >    <context-param>
> > > >
> > >
> > >
> >
> ><param-name>org.apache.myfaces.extensions.validator.DEACTIVATE_COMPONENT_INITIALIZATION</param-name>
> > > >        <param-value>true</param-value>
> > > >    </context-param>
> > > >
> > > >You also loose then some functionality related to the validation of
> > empty
> > > >fields (like specified in the JSF 2.0 spec for example
> > > >javax.faces.VALIDATE_EMPTY_FIELDS)
> > > >
> > > >The parameter can be of help about the problem of the value that
> > > >disappears.
> > > >I can't see any reason why the f:validateLength tag impacts the
> display
> > of
> > > >the field value.  By using the web context parameter, we make sure the
> > > >annotation based bypass validation add-on can't interfere with the
> > > >encoding
> > > >of the page (and thus preventing the display of the field)
> > > >
> > > >I tried to recreate you problem with that but had no luck.
> > > >
> > > >Q2
> > > >This could be a classloading problem of Tomcat.
> > > >Which of the parameters in web.xml did you try,
> > > >JPA_VALIDATION_ERROR_MESSAGES or CUSTOM_MESSAGE_BUNDLE
> > > >
> > > >But you also say that, when ExtVal Libraries placed in WEB-INF/lib you
> > > >don't
> > > >need to specify any parameter and all messages are displayed
> correctly.
> > > >So
> > > >which messages have you placed in the properties file that are related
> > to
> > > >ExtVal.
> > > >
> > > >Regards
> > > >Rudy.
> > > >
> > > >On 16 April 2010 08:52, Johan Borchers <johan.borchers@solcon.nl>
> > wrote:
> > > >
> > > >> Hello,
> > > >>
> > > >> I'm using Tomcat 6.0.20, Mojarra 1.2_14, RichFaces 3.3.3 and Extval
> > > >> 1.2.3
> > > >> on Mac en Windows with Java 1.6.0_17
> > > >> The Extval libs are:
> > > >> extval-annotation-based-bypass-validation-1.2.3.jar
> > > >> myfaces-extval-core-1.2.3.jar
> > > >> myfaces-extval-generic-support-1.2.3.jar
> > > >> myfaces-extval-property-validation-1.2.3.jar
> > > >>
> > > >> Extval is helping me al lot with bypass-validation because of fields
> > in
> > > >> a
> > > >> form that perform looking up values.
> > > >> E.g. a manufacturer code field is required in the big picture. But
> the
> > > >> field is also performing an AJAX lookup of the manufacturer as you
> > leave
> > > >> the
> > > >> field. At that moment it is legal to leave the field blank because
> you
> > > >> are
> > > >> just tabbing through your fields. So marking the lookup method with
> > > >> @BypassValidation(all = true) works perfect.
> > > >>
> > > >> Question 1 :
> > > >> Is it possible to use also the normal validation mechanism of JSF
in
> > > >> combination with Extval?
> > > >>
> > > >> E.g I have 3 fields on a form with 2 fields having Extval @required
> > > >> validation and one field has the traditional validation property
> > > >> required="true" in the XHTML page.
> > > >> Sending the form with 3 blank fields gives me 2 faces messages back.
> > > >> Only
> > > >> the messages due to Extval validation.
> > > >> So for me it looks like Extval is disabling the JSF validation
> defined
> > > >> in
> > > >> the XHTML page.
> > > >>
> > > >> A little bit more strange is the behavior of the one field without
> > > >> Extval
> > > >> validation if I'm adding a validation to the field like
> > > >> <f:validateLength
> > > >> minimum="2" maximum="10"/>
> > > >> If I send the form with one character in the field and the 2 other
> > > >> fields
> > > >> are left blank I receive 3 faces messages (that's nice).
> > > >> And then after retrieving the records from the database showing up
> in
> > a
> > > >> list clicking on the list fills normally all three fields in the
> form,
> > > >> but
> > > >> with the f:validateLength the field is left blank.
> > > >> Removing the f:validateLength from the field gives be back the
> normal
> > > >> behavior showing the data from the database.
> > > >>
> > > >>
> > > >> Question 2 :
> > > >> Where to place the Extval libraries?
> > > >>
> > > >> For developing I'm using 1 Tomcat installation per project. I do add
> > all
> > > >> the libraries to the lib directory of Tomcat. Placing also the
> Extval
> > > >> libraries to this directory has a little problem.
> > > >> If i'm setting my locale to nl_NL and have a
> Messages_nl_NL.properties
> > > >> in
> > > >> my root package Mojarra will find it and Extval not. I do get the
> > > >> missing
> > > >> resource exception.
> > > >> Even using the special parameter in web.xml giving a hint to Extval
> > > >> finding
> > > >> the message bundle does not help.
> > > >> But I thought that has something to to with the classloader. I
> decided
> > > >> to
> > > >> place just the Extval libraries in the WEB-INF/lib directory. After
> > that
> > > >> Extval is finding my locale specific message bundle perfectly even
> > > >> without
> > > >> the hint in web.xml.
> > > >> I know it is better to place all third party libs in WEB-INF/lib as
> of
> > > >> class loading but during development redeploying the web app a lot
> of
> > > >> times
> > > >> gives problems with e.g. reloading Mojarra.
> > > >>
> > > >>
> > > >> So that's a lot of text for few questions!
> > > >>
> > > >> I want to use Extval because of the flexible validation options. I
> > hope
> > > >> someone can answer my questions so I will better understand how to
> use
> > > >> Extval?
> > > >>
> > > >> T.I.A.
> > > >>
> > > >> Johan Borchers
> > >
> > >
> > >
> >
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message