dev@woodstock.java.net

Re: autoValidate problem.

From: Bill Edwards <Bill.Edwards_at_Sun.COM>
Date: Wed, 24 Oct 2007 20:00:21 -0400

Not sure this helps... In my early stumbling around
Facelets/Woodstock, I discovered
Facelets did not like MethodExpressions very much (still expected string
actions).
This is basically why Actions still work. When we investigated this a
bit, it turned
out that JSP was providing a conversion method to wrap the
ActionExpression return,
but Facelets was not. Not sure where the fault lies, or rather
anything further has
happened to address this, but two cents worth....

Steven Bell wrote:
> 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
> <mailto: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
> <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> <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
> <mailto:dev-unsubscribe_at_woodstock.dev.java.net>
> >> For additional commands, e-mail:
> dev-help_at_woodstock.dev.java.net
> <mailto:dev-help_at_woodstock.dev.java.net>
> >>
> >
> >
> ---------------------------------------------------------------------
> > To unsubscribe, e-mail: dev-unsubscribe_at_woodstock.dev.java.net
> <mailto:dev-unsubscribe_at_woodstock.dev.java.net>
> > For additional commands, e-mail: dev-help_at_woodstock.dev.java.net
> <mailto:dev-help_at_woodstock.dev.java.net>
> >
> >
> >
>
> --
> View this message in context:
> http://www.nabble.com/autoValidate-problem.-tf4642564.html#a13395605
> <http://www.nabble.com/autoValidate-problem.-tf4642564.html#a13395605>
> Sent from the Project Woodstock - Dev mailing list archive at
> Nabble.com <http://Nabble.com>.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe_at_woodstock.dev.java.net
> <mailto:dev-unsubscribe_at_woodstock.dev.java.net>
> For additional commands, e-mail: dev-help_at_woodstock.dev.java.net
> <mailto:dev-help_at_woodstock.dev.java.net>
>
>
>
>
> --
> Regards,
>
> Steven Bell