Allright, I found the source of the problem. I also have a web project (wsad project) where I can reproduce this easily.
Anyway here is the problem. I have a JSP called dummy.jsp which is as follows: ------------------------------------------------------------------------ <%@ page contentType="text/html" %> <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %> <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %> <HTML> <BODY> <f:view> <h:form> <!-- jsp:include page="header.jsp" / --> <h:panelGrid columns="2"> <h:outputText value="Process" /> <h:outputText value="#{clientTaskHandler.clientTask.process}" /> <h:outputText value="Name" /> <h:outputText value="#{clientTaskHandler.clientTask.name}" /> <h:outputText value="Id" /> <h:outputText value="#{clientTaskHandler.clientTask.id}" /> </h:panelGrid> <h:commandButton id="nextButton" value="Next" action="#{clientTaskHandler.navNext}" rendered="#{clientTaskHandler.renderNext}" /> </h:form> </table> </f:view> </body> </html> ------------------------------------------------------------------------ Very simple JSP right? Now focus on the command button. The problem is in the clause rendered="#{clientTaskHandler.renderNext}" The button is rendered correctly as clientTaskHandler.isRenderNext() returns true. So far so good? Now if I click the button, the action clientTaskHandler.navNext() is NEVER CALLED. The JSP is displayed again with null values. I tried to change rendered="#{clientTaskHandler.renderNext}" to rendered="true" and guess what? Everything works fine!! So basically if the rendered value is pulled from an expression, the rendering is improper and clicking the button does not invoke the specified action. However if rendered value is statically specified on the page, everything works fine. If you need the war file, I can easily export one for you. Thanks for help.

