CommandLink does not execute action if no javascript is allowed ---------------------------------------------------------------
Key: MYFACES-1692 URL: https://issues.apache.org/jira/browse/MYFACES-1692 Project: MyFaces Core Issue Type: Bug Components: General Affects Versions: 1.2.0 Environment: Tomcat 6.0, javax.faces.STATE_SAVING_METHOD=server, org.apache.myfaces.ALLOW_JAVASCRIPT=false Reporter: Thomas Fischer Situation: The tag <h:commandLink action="#{someBean.someAction}" value="submit"></h:commandLink> is used in a jsp page, which is visited by the user. The user clicks on the link. Expected behaviour: The method someBean.someAction() should be called, and the navigation rule which matches the outcome should determine the page to be displayed. Wrong behaviour: 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. If javaScript rendering is allowed, this works fine because the HTTP parameter ResponseStateManager.VIEW_STATE_PARAM is rendered as a hidden input field, and the javascript code does a form submit. 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). -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.