shale-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sanjay Choudhary" <choudharysan...@gmail.com>
Subject Re: Defining mask globally
Date Thu, 15 Mar 2007 19:15:06 GMT
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 <hermod@opstvedt.com> 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:choudharysanjay@gmail.com]
> 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, hermod.opstvedt@dnbnor.no <hermod.opstvedt@dnbnor.no> 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:choudharysanjay@gmail.com]
> > Sent: Wednesday, March 14, 2007 11:03 PM
> > To: user@shale.apache.org; hermod@opstvedt.com
> > 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 <hermod@opstvedt.com> 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:choudharysanjay@gmail.com]
> > > 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.
> >
> > * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
> *
> > *
> >
> >
>
>

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