jsf 2 - ui:include value is evaluated before preRenderView -


page1.xhtml

<h:body> <h:link outcome="page2.xhtml> <f:param name="id" value="1"/> </hlink> </h:body> 

page2.xhtml

 <h:body>     <f:metadata>     <f:event type="prerenderview" listener="#{mybean.init}"/>     </f:metadata>     <ui:include src="#{mybean.mystring}"/>     </h:body> 

mybean.java

public void init(componentsystemevent e){   map<string,string> params =    facescontext.getexternalcontext().getrequestparametermap();   string myid = params.get("id");   int id = integer.parseinteger(myid);   if(id==1)     setmystring = "mypage.xhtml"; } 

while navigating page1.xhtml page2.xhtml sending id parameter according id display page

the problem page cannot find

i printing in console what's happening found is evaluating getmystring() before going prerenderview init why happening this

i tried post construct returned error in resource injection of managedbean

that's classic view build time vs view render time problem: <ui:include> tag handler that's evaluated @ view build time, while <f:event type="prerenderview"> naturally called when view rendered. guess, latter event happens after former, while expect otherwise. still, when former tag requests evaluate attribute, it's null, or isn't there yet.

read classic jstl in jsf2 facelets... makes sense? better grasp @ what's relationship between these 2 phases of jsf lifecycle.


Comments

Popular posts from this blog

jquery - How can I dynamically add a browser tab? -

node.js - Getting the socket id,user id pair of a logged in user(s) -

keyboard - C++ GetAsyncKeyState alternative -