dev@woodstock.java.net

Re: autoValidate problem.

From: Steven Bell <bell.steven_at_gmail.com>
Date: Wed, 24 Oct 2007 14:46:54 -0700

I've been doing quite a bit of digging on this, and here's what I've come up
with so far. It may not be all right, but it's what I'm going with for now

First, the "I has no properties" is irrelevant. It doesn't seem to actually
indicate a problem. I still get it on pages where the autovalidation is
working just fine.

Basically there seems to be a real problem with facelets and the way
woodstock performs actions.

I'll bet that in your pages for buttons you are using action instead of
actionExpression because actionExpression doesn't seem to work, but action
does. That's what I was doing, and I didn't really think twice about it.
It seems that facelets in some way is preventing the woodstocks normal
communications.

At this point in my (rather large mission critical) project I'm in the
process of dumping facelets and going with straight jsp pages. If you do
this you'll probably also notice that the jsp validation is much more strict
and holds you to the taglib definitions. I had to do a fair amount of work
to get my pages to render again, not hard, just time consuming.

On 10/24/07, AntonioV <antonio_at_antonioshome.net> wrote:
>
>
> Hi,
>
> I'm also experimenting this problem (Woodstock build #14, facelets 1.1.13
> ).
>
> Mozilla error console reports:
>
> Error: no element found
> Source File:
> http://localhost:8080/gesif/clientes/entrada/plantillas/alta.jsf
> Line: 1, Column: 158
> Source Code:
> <partial-response><components><render
>
> id="plantillas:clienteid"><markup><![CDATA[{"id":"plantillas:clienteid","valid":true}]]></markup></render></components>-------------------------------------------------------------------------------------------------------------------------------------------------------------^
>
> (There *is* a component named 'plantillas:clienteid' )
>
> And
>
> Error: I has no properties
> Source File:
> http://localhost:8080/gesif/theme/META-INF/com_sun_faces_ajax.js
> Line: 1
>
>
> The delayed init does *not* help, either.
>
>
>
>
> Bob Yennaco wrote:
> >
> > Does init() delayed in the onLoad: onLoad="setTimeout('init();',
> 0);"
> > Not sure if this will make a difference but it's simple enough to try.
> >
> > Otherwise I can tell from the jsp code snippets. Is there a DOM node
> > with id="components"? Does G.getElementsByTagName("components") return
> > an array of elements? If not, then that'd explain why I is null.
> >
> > Steven Bell wrote:
> >> Hello,
> >>
> >> I'm trying to get autoValidate to work on a textField, modeled after
> >> the payment page in the example app, and I keep running into a
> >> javascript error.
> >>
> >> The error is coming out of the com_sun_faces_ajax.js file in the
> >> jsf-extensions-dynamic-faces-0.1.jar. It is "I has no properties".
> >> The javascript that throws the error is:
> >>
> >> ...
> >> var I = G.getElementsByTagName("components")[0];
> >> var C = I.getElementsByTagName("render"); <---- I appears to be null
> >> here.
> >> for(var F = 0; F < C.length; F++) {
> >> ...
> >>
> >> Here is the textField code:
> >>
> >> <w:form id="PayableForm">
> >> <w:textField style="display:none;" />
> >> <w:message for="vendorGci" />
> >> <w:label id="vendorGciLabel" for="vendorGci" text="Vendor:
> >> " />
> >> <w:textField id="vendorGci" autoValidate="true"
> >> text="${vendorBean.searchGci}" maxlength="8"
> >> required="true"
> >> validatorExpression="#{ vendorBean.validateVendor}" />
> >>
> >>
> >> Here is the javascript in the page (the init function is called from
> >> the onLoad of the body, this does happen):
> >>
> >> <w:script type="text/javascript">
> >> function VendorListener(){
> >> }
> >>
> >> function VendorNotify(props){
> >> alert("VendorNotify called!"); <--------------- I never see
> >> this alert message
> >> if ( props.id <http://props.id> != "PayableForm:vendorGci") {
> >> return; }
> >>
> >> var field =
> >> document.getElementById("PayableForm:vendorGciLabel");
> >> field.setProps({
> >> valid: props.valid
> >> });
> >> }
> >>
> >> VendorListener.prototype.notify = VendorNotify;
> >>
> >> function initAccountRows(){
> >> var table =
> >> document.getElementById("PayableForm:vendorAccountTable");
> >> table.initAllRows();
> >> }
> >>
> >> function init(){
> >> initAccountRows();
> >>
> >> var listener = new VendorListener();
> >> dojo.subscribe(
> >> webui.suntheme.widget.textField.event.validation.endTopic ,
> >> listener, listener.notify);
> >> }
> >>
> >> Here is the validator method. It currently doesn't do anything, just
> >> trying to get something to work. I never see the output, and I never
> >> hit the breakpoint in the method.
> >>
> >> public void validateVendor(FacesContext context, UIComponent comp,
> >> Object value){
> >> System.out.println("**********************************");
> >> System.out.println("validateVendor called");
> >> System.out.println(value);
> >> System.out.println("**********************************");
> >> }
> >>
> >>
> >> I attached a screenshot of firebug running and catching the error.
> >> The line number listed is because I used the javascript formatter from
> >> here:
> >>
> >> http://javascript.about.com/b/a/176259.htm
> >>
> >> To reformat the com_sun_faces_ajax.js so I could get some idea of
> >> where it was failing.
> >>
> >> Any help or ideas would be greatly appreciated.
> >>
> >> --
> >> Thanks,
> >>
> >> Steven Bell
> >>
> ------------------------------------------------------------------------
> >>
> >>
> ------------------------------------------------------------------------
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: dev-unsubscribe_at_woodstock.dev.java.net
> >> For additional commands, e-mail: dev-help_at_woodstock.dev.java.net
> >>
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: dev-unsubscribe_at_woodstock.dev.java.net
> > For additional commands, e-mail: dev-help_at_woodstock.dev.java.net
> >
> >
> >
>
> --
> View this message in context:
> http://www.nabble.com/autoValidate-problem.-tf4642564.html#a13395605
> Sent from the Project Woodstock - Dev mailing list archive at Nabble.com.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe_at_woodstock.dev.java.net
> For additional commands, e-mail: dev-help_at_woodstock.dev.java.net
>
>


-- 
Regards,
Steven Bell