You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by "Martin Grigorov (JIRA)" <ji...@apache.org> on 2013/08/16 15:42:47 UTC

[jira] [Resolved] (WICKET-5320) RenderHead order is different with Ajax Request

     [ https://issues.apache.org/jira/browse/WICKET-5320?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Martin Grigorov resolved WICKET-5320.
-------------------------------------

    Resolution: Won't Fix

This has been fixed in Wicket 6.0.0.
1.5.x is in maintenance mode and such (rather big) changes won't be made to it.
                
> RenderHead order is different with Ajax Request
> -----------------------------------------------
>
>                 Key: WICKET-5320
>                 URL: https://issues.apache.org/jira/browse/WICKET-5320
>             Project: Wicket
>          Issue Type: Bug
>          Components: wicket
>    Affects Versions: 1.5.7
>            Reporter: Palancher aurélien
>            Priority: Minor
>
> Component renderHead method is called before the children renderHead in Ajax request.
> In AjaxRequestTarget.respondHeaderContribution :
>                component.renderHead(header);
> 		if (component instanceof MarkupContainer)
> 		{
> 			((MarkupContainer)component).visitChildren(new IVisitor<Component, Void>()
> 			{
> 				public void component(final Component component, final IVisit<Void> visit)
> 				{
> 					if (component.isVisibleInHierarchy())
> 					{
> 						component.renderHead(header);
> 					}
> 					else
> 					{
> 						visit.dontGoDeeper();
> 					}
> 				}
> 			});
> 		}
> When responding a normal request, in ChildFirstHeaderRenderStrategy, we have :
>        @Override
> 	public void renderHeader(final HtmlHeaderContainer headerContainer,
> 		final Component rootComponent)
> 	{
> 		Args.notNull(headerContainer, "headerContainer");
> 		Args.notNull(rootComponent, "rootComponent");
> 		// First the application level headers
> 		renderApplicationLevelHeaders(headerContainer);
> 		// Than its child hierarchy
> 		renderChildHeaders(headerContainer, rootComponent);
> 		// Than the root component's headers
> 		renderRootComponent(headerContainer, rootComponent);
> 	}
> This causes problems refreshing the component.
> In my case : a child component executes an onload javascript function wich stores datas in the markup, and my root component uses them in another onload function. First access : datas ok, ajax refresh : the datas are not stored yet.
> I have tested component.renderHead(header); after the child visitor in AjaxRequestTarget and it works fine.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira