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.
>
> * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*
> *
>
>


Reply via email to