>From: "Paul Devine" <[EMAIL PROTECTED]> 
>
> I will create the bug and attach the example code. Thanks for all your help. 
> 
> If anyone can think of a short term workaround, maybe even a javascript hack 
> I can fit in myself, that would be great too :-) 
>

I can't think of a quick fix since each UIInput component would need to capture 
it's clientId in the renderer and stuff it back into the component's attributes 
for the validator script collector.

component.getAttributes().put("org.apache.shale.validator.clientId", 
component.getClentId(facesContext);

We might be able to solve this problem globally using a propose renderer 
decorator (http://issues.apache.org/bugzilla/show_bug.cgi?id=37932). 

Gary

> -- Paul 
> 
> On 3/29/06, Gary VanMatre wrote: 
> > 
> > >From: Laurie Harper 
> > > 
> > > Why would that be needed? The s:commonsValidator tag should render 
> > > Javascript referencing the actual rendered ID of the component it's 
> > > attached to. I haven't played much with validators, much less validators 
> > > for components inside dataLists, but I would have thought this should be 
> > > able to work as it is. 
> > > 
> > 
> > I think this one is a bug. The dataList component is a naming container 
> > so any components contained in it, should get a clientId prefix from all 
> > naming containers that it's nested in. The dataList extends the UIData 
> > component who creates it's client id from the current row. 
> > 
> > public String getClientId(FacesContext context) 
> > { 
> > String clientId = super.getClientId(context); 
> > int rowIndex = getRowIndex(); 
> > if (rowIndex == -1) 
> > { 
> > return clientId; 
> > } 
> > else 
> > { 
> > return clientId + "_" + rowIndex; 
> > } 
> > } 
> > 
> > The validator script collector asks the components with the commons 
> > validator for their client id after the dataList has done it's renderering 
> > which renderers it's own children. 
> > 
> > I want to say that JSF 1.2 adds a callback to handle this but I don't 
> > understand the details yet. 
> > 
> > Paul, please create a bugzilla ticket on this one. 
> > 
> > Gary 
> > 
> > > Paul, could you include your sample JSP and, if possible, copy/paste the 
> > > rendered HTML as well, in a Bugzilla ticket so the issue gets tracked? 
> > > 
> > > L. 
> > > 
> > > Hermod Opstvedt wrote: 
> > > > Hi 
> > > > 
> > > > Did I hear forceId? - You need to use this attribute to force the name 
> > to be 
> > > > what you want. 
> > > > 
> > > > Hermod 
> > > > 
> > > > 
> > > > -----Opprinnelig melding----- 
> > > > Fra: Paul Devine [mailto:[EMAIL PROTECTED] 
> > > > Sendt: 29. mars 2006 22:47 
> > > > Til: user@struts.apache.org 
> > > > Emne: [Shale] commons client side validation not working inside a 
> > dataList 
> > > > 
> > > > I tried using the commons validation features of Shale. The 
> > application is 
> > > > using Myfaces 1.1.1. The validation javascript is being written back 
> > to the 
> > > > browser. The server side validation is working fine but a javascript 
> > `field 
> > > > error occurs during the . However there is a problem with the client 
> > side 
> > > > input element Id's that the javascript validation is looking for 
> > versus the 
> > > > client side id's that are generated by the dataList. The page i tried 
> > > > validation on has a Myfaces dataList inside a form, and for each 
> > iteration 
> > > > through the list there are inputs. Basically a dataList will append 
> > the `row 
> > > > index` to the client side Id to guarantee uniqueness, as in 
> > > > "myForm:myDataList_0:someRequiredField" for the first row, 
> > > > "myForm:myDataList_1:someRequiredField" for the second, and so on. But 
> > in 
> > > > the rendering of the javascript by the struts validatorScript tag, the 
> > > > clientId of the input components lose their row index. 
> > > > 
> > > > I have created an illustrative example that generates the same 
> > problem. The 
> > > > code is included below and the inline comments hopefully explain 
> > what's 
> > > > happening. To keep things simple there is no backing bean, and I use a 
> > > > class from shale-core to give me some objects to edit, so all you'd 
> > just 
> > > > need to deploy into a shale-core based "blank" web-app. My application 
> > page 
> > > > is more complex than this but I am running into exact the same problem 
> > > > withthe validation javascript 
> > > > 
> > > > Does this look familiar to anyone? Any workarounds, solutions?... 
> > > > 
> > > > Thanks 
> > > > -- Paul Devine 
> > > > 
> > > > 
> > > > 
> > > > 
> > > > 
> > > > 
> > > > 
> > > > 
> > > > 
> > > > 
> > > > > > rowIndexVar="index"> 
> > > > 
> > > > 
> > > > > > required="true"> 
> > > > > > client="true"/> 
> > > > > > errorClass="errorMessage"/> 
> > > > 
> > > > 
> > > > 
> > > > 
> > > > 
> > > > 
> > > > 
> > > 
> > > 
> > > --------------------------------------------------------------------- 
> > > To unsubscribe, e-mail: [EMAIL PROTECTED] 
> > > For additional commands, e-mail: [EMAIL PROTECTED] 
> > > 
> > 
> 

Reply via email to