Affects Version/s: 1.2.0
Fix Version/s: None
The tag <h:commandLink action="#
" value="submit"></h:commandLink> is used in a jsp page, which is visited by the user. The user clicks on the link.
The method someBean.someAction() should be called, and the navigation rule which matches the outcome should determine the page to be displayed.
The method defined in action is not called and the same jsp page is rendered again.
I did some debugging to find the reason of this problem. It seems to me that the server does not recognize that the click on the link is a postback. In line 172 in org.apache.myfaces.renderkit.html.HtmlResponseStateManager, the HTTP Parameter ResponseStateManager.VIEW_STATE_PARAM is checked for existence. If it is there, the request is a callback, and if it is not there, the request is not treated as postback. This parameter is not encoded in the link rendered by h:commandLink, thus the request is not treated as a postback, and the page is just rendered again.
It seems to me that the problem could be solved by adding the parameter ResponseStateManager.VIEW_STATE_PARAM to the generated link (but I did not check it).