As part of safeguard against tampered/hacked requests, the JSF component's rendered
attribute is re-evaluated during processing the form submit. In case of a command link/button, if it evaluates false
, then its action won't be queued/invoked. This matches the symptoms you're seeing.
This can in turn happen if the managed bean #{menuitems}
is request scoped and/or when the properties behind #{menuitems.level1menus}
or #{menuitems.selectedLevel1}
are incompatibly changed during the postback request.
Putting the bean in the view scope and ensuring that the getters do not do any business job should fix this problem.