There is a issue with command button in ui:repeat tag.
If command button is nested in a ui:repeat tag, command button or link will not work until the iterating bean/List is in view scope or bigger scope.
solution is to set the iterating list should be set in bean with view scope or higher.
It is a fundamental part of the JSF lifecycle that the first phase is the View Restore Phase, and that’s the same with/without Facelets.
JSF iteration controls generally maintain a cursor to do their work, and the only way that the cursor can function properly is if the referenced datamodel is in a non-transient scope. For JSF1, that means Session Scope or higher. For JSF2, View Scope or higher.
Took my 6hrs to fix it. So putting it here