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: [email protected]
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: [email protected]; [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: [email protected]
> > 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.
>
> * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*
> *
>
>