JSF 2.0 : <f:ajax> contains an unknown id
Published: September 8, 2010 , Updated: September 8, 2010 , Author: mkyong
Problem
A JSF’s button with Ajax support…
<h:outputText id="output" value="#{helloBean.sayWelcome}" /> <h:form> <h:inputText id="name" value="#{helloBean.name}"></h:inputText> <h:commandButton value="Welcome Me"> <f:ajax execute="name" render="output" /> </h:commandButton> </h:form>
When this page is displayed, it prompts the following error message
javax.faces.FacesException: <f:ajax> contains an unknown id 'output' - cannot locate it in the context of the component j_idt8
Obviously, the id of ‘output‘ is not found, but it’s explicitly declared in the <h:outputText id=”output” /> already?
Solution
In JSF 2.0, the <f:ajax> tag required the “render” output within the same form level. The <h:outputText id=”output” /> tag should move inside the form.
<h:form> <h:outputText id="output" value="#{helloBean.sayWelcome}" /> <h:inputText id="name" value="#{helloBean.name}"></h:inputText> <h:commandButton value="Welcome Me"> <f:ajax execute="name" render="output" /> </h:commandButton> </h:form>
Reference
Note : You can find more similar articles at - JSF 2 Tutorials







Param,
I try put render=”:busca_produto” but doesn’t work.
Look the error message
f:ajax> contains an unknown id ‘:busca_produto’ – cannot locate it in the context of the component inputNumber
Another shot
Message:
javax.servlet.ServletException: inputNumber
Help me
If you wanted to render a component outside of the form using the tag, then you must specify the render ids absolutely, ie, with respect to the top level container. So in this case render=”:output” would do the trick.
Good job, param