来自渲染执行操作的 getViewRoot null

getViewRoot null from on-render execution action

我需要实现 viewRoot,因为我使用数据库结果动态添加了一个新的 htmlPanelGroup,但总是 return null。

如何从正确实现 viewRoot 的 SWF 片段中抛出求值表达式?

谢谢!

流量

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

方法

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");

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

最后,我选择将 requestParameter 保存在 flowScope var 中,这样我就可以在调用渲染执行时使用它

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