Hi Hermod,
for the following scenerio 1 <h:inputText id="companyName" styleClass="inputText" value="#{BrokerRepresentative.companyName}" size="20"> <val:commonsValidator type="maxlength" arg="Company Name" maxlength="30" server="true" /> <val:commonsValidator type="mask" arg="Company Name" server="true" client="false" message="#{bu.ALPHAONLY}"> <val:validatorVar name="mask" value="^[a-zA-Z]+$" /> </val:commonsValidator> </h:inputText> if I input companyname = 123456 I see the message displayed that maps to bu.ALPHAONLY but now when I change the above to scenerio 2 <h:inputText id="companyName" styleClass="inputText" value="#{BrokerRepresentative.companyName}" size="20"> <val:commonsValidator type="maxlength" arg="Company Name" maxlength="30" server="true" /> <val:commonsValidator type="mask" arg="Company Name" server="true" client="false" message="#{bu.ALPHAONLY}"> <val:validatorVar name="mask" value="#{bu.ALPHAONLY}" /> ------------------> changed here </val:commonsValidator> </h:inputText> I get the null pointer exception. On further looking at the code I found that following method returns null /** * <p>Evaluate the <code>expression</code>. If it's a value reference, * get the reference's value. * Otherwise, return the <code>expression</code>.</p> * * @param expression The expression */ public Object eval(String expression) { if (expression == null) { return null; } if (isValueReference(expression)) { FacesContext context = FacesContext.getCurrentInstance(); Application app = context.getApplication(); return app.createValueBinding(expression).getValue(context); ---------------> this returns null. } else { return expression; } } Thing I don't understand is why will it return null in scenerio 2 whereas it is successful in finding the same in scenerio 1. Also I there anyother way /solution to use the global masks. FYI, I am now using 1.1.0-SNAPSHOT version -Sanjay On 3/15/07, Hermod Opstvedt <[EMAIL PROTECTED]> wrote:
Hi Since I use Clay, I solve this with symbols. Clay really makes life simple in these cases. Try using the validators "message" attribute along with the resourcebundle lookup. Hermod -----Opprinnelig melding----- Fra: Sanjay Choudhary [mailto:[EMAIL PROTECTED] Sendt: 15. mars 2007 16:45 Til: user@shale.apache.org Emne: Re: Defining mask globally Hi Hermod, I will try this. I have another question regards to the mask - Is it possible to display different message for each mask validation? Is there a way I can pass the message to each of the mask validation? For example - For this validation I may like to display "Only Alpha chars are allowed" <val:commonsValidator type="mask" arg="Company Name" server="true" client="false"> <val:validatorVar name="mask" value="#'{bu.ALPHAONLY}'" /> </val:commonsValidator> and for this validation I may want to display - "Only numbers are allowed" <val:commonsValidator type="mask" arg="Salary" server="true" client="false"> <val:validatorVar name="mask" value="#'{bu.INTONLY}'" /> </val:commonsValidator> Thanks, Sanjay On 3/15/07, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote: > > Hi > > Haven't had a look at the code yet, but could you try: <val:validatorVar > name="mask" value="#{globalmask['name']}" /> > > Hermod > > -----Original Message----- > From: Sanjay Choudhary [mailto:[EMAIL PROTECTED] > Sent: Wednesday, March 14, 2007 11:03 PM > To: user@shale.apache.org; [EMAIL PROTECTED] > Subject: Re: Defining mask globally > > > Hi Hermod, > > I am using version 1.0.4 of shale-validator. > > Is this the right approach to manage the regex for the mask? > > I also double checked about typo error, that error was in email message > but > not in the code. > > Thanks > > > > > On 3/14/07, Hermod Opstvedt <[EMAIL PROTECTED]> wrote: > > > > Hi > > > > Another question: Which version is this of shale-validator? The > > linenumbers > > don't match up with the current. > > > > Hermod > > > > > > -----Opprinnelig melding----- > > Fra: Sanjay Choudhary [mailto:[EMAIL PROTECTED] > > Sendt: 14. mars 2007 21:33 > > Til: user@shale.apache.org > > Emne: Defining mask globally > > > > hi > > > > I wish to define the global regex for masks in a common file. For > example > > , > > name field mask will be like ^[a-zA-Z]+$. > > > > <h:inputText id="nameame" styleClass="inputText" > > value="#{BrokerRepresentative.name}" size="20"> > > <val:commonsValidator type="mask" arg="Company Name" > > server="true" > > client="false"> > > <val:validatorVar name="mask" > value="^[a-zA-Z]+$" > > /> > > </val:commonsValidator> > > </h:inputText> > > > > I wish to replace this with something like > > > > <f:loadBundle basename="globalmasks" val="globalmask"/> > > > > <h:inputText id="nameame" styleClass="inputText" > > value="#{BrokerRepresentative.name}" size="20"> > > <val:commonsValidator type="mask" arg="Company Name" > > server="true" > > client="false"> > > <val:validatorVar name="mask" value="#{ > > globalmask.name}" /> > > </val:commonsValidator> > > </h:inputText> > > > > This will enable me to validate the name field in a uniform way through > > out > > my application. Also if any change is need in regex then it needs to > > applied > > in one place. When I tried this solution I got > > > > > > java.lang.NullPointerException > > > > org.apache.shale.validator.CommonsValidator.convert( > CommonsValidator.java > > :95 > > 4) > > > > org.apache.shale.validator.CommonsValidator.loadMethodParamValues > > (CommonsVal > > idator.java:715) > > > > org.apache.shale.validator.CommonsValidator.validate( > CommonsValidator.java > > :7 > > 93) > > javax.faces.component.UIInput.validateValue(UIInput.java:781) > > javax.faces.component.UIInput.validate(UIInput.java:645) > > javax.faces.component.UIInput.executeValidate(UIInput.java :849) > > javax.faces.component.UIInput.processValidators(UIInput.java > :412) > > > > javax.faces.component.UIComponentBase.processValidators( > > UIComponentBase.java > > :912) > > javax.faces.component.UIForm.processValidators(UIForm.java :170) > > > > javax.faces.component.UIComponentBase.processValidators( > > UIComponentBase.java > > :912) > > > > javax.faces.component.UIComponentBase.processValidators( > > UIComponentBase.java > > :912) > > > > javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java :342) > > > > com.sun.faces.lifecycle.ProcessValidationsPhase.execute > > (ProcessValidationsPh > > ase.java:78) > > com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java > > :200) > > com.sun.faces.lifecycle.LifecycleImpl.execute( LifecycleImpl.java > > :90) > > javax.faces.webapp.FacesServlet.service(FacesServlet.java:197) > > > > > > > > Any help /commens/ pointers appreciated to resolve this problem. I open > > to > > different solution too. > > > > > > Thanks, > > sanjay > > > > > > > * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * > * > > This email with attachments is solely for the use of the individual or > entity to whom it is addressed. Please also be aware that DnB NOR cannot > accept any payment orders or other legally binding correspondence with > customers as a part of an email. > > This email message has been virus checked by the anti virus programs used > in the DnB NOR Group. > > * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * > * > >