myfaces-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David Delbecq <de...@oma.be>
Subject Re: Attribute "for"
Date Thu, 21 Dec 2006 10:54:12 GMT
When exactly do you call getInputFor()? During rendering process?
(encodeBegin()/encondEnd())
according to specs, findComponent will not work properly if your Label
is not yet attached to it's parent NamingContainer. (form in you case),
so i would suggest to check for getInputFor only in renderer.

En l'instant précis du 12/21/06 11:44, Josué Alcalde González
s'exprimait dans toute sa noblesse:
> I am extending HtmlOutputLabel adding a "*" when its for component is
> required.
>
> I am almost successful but I am having a problem.
> The "*" is not rendered the first time the page is rendered.
>
> The problem, is that findComponent does not find the "for" component
> using findComponent the first time:
>
> [...]
> public EditableValueHolder getInputFor(){
> 	UIComponent uiFor = findComponent(getFor());
> 	if (uiFor == null || !(uiFor instanceof EditableValueHolder))
> 		return null;
> 	return (EditableValueHolder) uiFor;
> }
>
> [...]
> EditableValueHolder uiFor = uiLabel.getInputFor();
> if (uiFor == null || !((EditableValueHolder) uiFor).isRequired())
> 	return;
>
>
> [...]
>
> <f:view>
> 	<h:form>
> 		<csa:outputLabel id="ol" value="Hello world" for="it""/>
> 		<t:inputText id="it" required="true" />
> 		<t:commandButton id="cb" value="Button"/>
> 	</h:form>
> 	<t:messages />
> </f:view>
>
> Why it is not find 
>
>
>   


Mime
View raw message