Search code examples
springspring-mvcspring-webflowspring-webflow-2

getViewRoot null from on-render execution action


I need to achieve viewRoot because I add a new htmlPanelGroup dynamically using DB results but always return null.

How is possible throw a evaluate expression from SWF fragment which achieve viewRoot properly?

Thanks!

Flow

            <on-entry>
                <set name="viewScope.code" value="requestParameters.code" />
            </on-entry>
            <on-render>
                <evaluate expression="eventProvider.createEvent(viewScope.code)" />
            </on-render>

Method

public void createEvent(String idEvent){
    logger.entry("EventProvider.createEvent()");


    Page p=pageBo.getDao().get(Integer.valueOf(idEvent));

    pageBo.getDao().initializeElements(p);

    Set<Element> elements=p.getElements();

    Application app=FacesContextWrapper.getCurrentInstance().getApplication();
    UIComponent parent=FacesContextWrapper.getCurrentInstance().getViewRoot().findComponent("eventContainer");

  ....
  ....
  ....}

Solution

  • Finally, I've chosen to save requestParameter in a flowScope var and so I can use it when on-render execution is invoked

                <on-entry>
                    <set name="flowScope.code" value="requestParameters.code" />
                </on-entry>
                <on-render>
                    <evaluate expression="eventProvider.loadPage(flowScope.code)" />
                </on-render>