2012-08-29 10 views

Odpowiedz

4

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. 
Powiązane problemy