Are there conditional rendering ( rendered="#{some expression}" ) around these input and sentence components? Or iteration?
Is the .suggest() action .suggest() place before this error?
Situations such as those described above occur when the component associated with the action (the caller) is in a conditional render (or iteration) that prevents the component from being created at the RestoreView stage. Then the action is not called at all, and the component identifier is not found in the component tree.
Example: if you have something like this:
<h:panelGroup rendered="#{not empty myBean.valueSetInActionHandler}"> <h:commandLink id="action1" action="#{myBean.callOtherAction" value="appears after action"/> </h:panelGroup> <h:commandLink id="action2" action="#{myBean.setValueInActionHandler}" value="display button above"/>
The first render - only one, the second button is displayed. If setValueInActionHandler sets a value and displays the same page, the first button ("appears after the action") will also be displayed. But when you click on it, callOtherAction will not work - because on the second request during RestorePhase, the value of InActionHandler is again empty, so action1 will not be available ...
Hope I managed to clear up :)
wciesiel
source share