来自渲染执行操作的 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>
我需要实现 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>