Zapomniałeś zbudować widok. Możesz użyć do tego celu ViewDeclarationLanguage#buildView()
. Oto wyciąg z jego javadoc (kopalnia nacisk):
Take żadnych działań charakterystycznych dla tej implementacji VDL spowodować argument UIViewRoot
który musi zostać utworzony poprzez wywołanie createView(javax.faces.context.FacesContext, java.lang.String)
, być wypełniane dzieci.
Zatem, należy to zrobić:
String viewId = "/path/to/some.xhtml";
FacesContext context = FacesContext.getCurrentInstance();
ViewHandler viewHandler = context.getApplication().getViewHandler();
UIViewRoot view = viewHandler.createView(context, viewId);
viewHandler.getViewDeclarationLanguage(context, viewId).buildView(context, view);
// view should now have children.
Można przy okazji również użyć ViewDeclarationLanguage#createView()
bezpośrednio do utworzenia widoku zamiast ViewHandler#createView()
stenografii.
String viewId = "/path/to/some.xhtml";
FacesContext context = FacesContext.getCurrentInstance();
ViewDeclarationLanguage vdl = context.getApplication().getViewHandler().getViewDeclarationLanguage(context, viewId);
UIViewRoot view = vdl.createView(context, viewId);
vdl.buildView(context, view);
// view should now have children.