[ http://issues.apache.org/jira/browse/MYFACES-326?page=all ] Grant Smith closed MYFACES-326: -------------------------------
Resolution: Invalid > facesContext.renderResponse not skipping validation when immediate event > submitted twice > ---------------------------------------------------------------------------------------- > > Key: MYFACES-326 > URL: http://issues.apache.org/jira/browse/MYFACES-326 > Project: MyFaces > Type: Bug > Versions: 1.0.9 beta > Environment: JBoss 4 and Tomcat 5. > <context-param> > <description> > State saving method: "client" or "server" (= default) > See JSF Specification 2.5.2 > </description> > <param-name>javax.faces.STATE_SAVING_METHOD</param-name> > <param-value>server</param-value> > </context-param> > > <context-param> > <description> > Comma separated list of URIs of (additional) faces config files. > (e.g. /WEB-INF/my-config.xml) > See JSF 1.0 PRD2, 10.3.2 > </description> > <param-name>javax.faces.CONFIG_FILES</param-name> > <param-value> > /WEB-INF/faces-config.xml > </param-value> > </context-param> > <context-param> > <description> > This parameter tells MyFaces if javascript code should be allowed > in the > rendered HTML output. > If javascript is allowed, command_link anchors will have > javascript code > that submits the corresponding form. > If javascript is not allowed, the state saving info and nested > parameters > will be added as url parameters. > Default: "true" > </description> > <param-name>org.apache.myfaces.ALLOW_JAVASCRIPT</param-name> > <param-value>true</param-value> > </context-param> > > <context-param> > <description> > This parameter tells MyFaces if javascript code should be allowed > in the > rendered HTML output. > If javascript is allowed, command_link anchors will have > javascript code > that submits the corresponding form. > If javascript is not allowed, the state saving info and nested > parameters > will be added as url parameters. > Default: "false" > Setting this param to true should be combined with > STATE_SAVING_METHOD "server" for > best results. > This is an EXPERIMENTAL feature. You also have to enable the > detector filter/filter mapping below to get > JavaScript detection working. > </description> > <param-name>org.apache.myfaces.DETECT_JAVASCRIPT</param-name> > <param-value>false</param-value> > </context-param> > <context-param> > <description> > If true, rendered HTML code will be formatted, so that it is > "human readable". > i.e. additional line separators and whitespace will be written, > that do not > influence the HTML code. > Default: "true" > </description> > <param-name>org.apache.myfaces.PRETTY_HTML</param-name> > <param-value>true</param-value> > </context-param> > <context-param> > <description> > If true, a javascript function will be rendered that is able to > restore the > former vertical scroll on every request. Convenient feature if > you have pages > with long lists and you do not want the browser page to always > jump to the top > if you trigger a link or button action that stays on the same > page. > Default: "false" > </description> > <param-name>org.apache.myfaces.AUTO_SCROLL</param-name> > <param-value>true</param-value> > </context-param> > Reporter: Rick Hightower > > Bug Report: > facesContext.renderResponse not skipping validation when immediate event > submitted twice. > Description: > The first time you render a page, and you hit the button that is configured > as such: > <h:selectOneRadio id="showSecondMortgage" > value="#{lreController.form.showSecondMortgage}" > immediate="true" > onclick="submit()" > > valueChangeListener="#{lreController.showSecondMortgageChanged}"> > <f:selectItem itemLabel="Yes" itemValue="true"/> > <f:selectItem itemLabel="No" itemValue="false"/> > </h:selectOneRadio> > Notice that event handling is set to immediate. > Also notice that onclick="submit()". > First time through: > The event handler gets called as expected: > LREController.java: > public void showSecondMortgageChanged(ValueChangeEvent event) { > Boolean showSecondMortgage = (Boolean) event.getNewValue(); > form.setShowSecondMortgage(showSecondMortgage); > FacesContext facesContext = getFacesContext(); //this method just get > Faces context the normal way. > facesContext.renderResponse(); > } > The event handler calls renderResponse. > The phase progression is as follows: > 1) Restore View > 2) Apply Request Values (event handler called) > 3) Render Response. > The above is correct. > It is the second time through that the problems occur. > The second time the radio button get selected the event handler gets called, > but the phase does not go > directly to Render Response it goes as follows: > Restore View > Apply Request Values (event handler called) > Process Validation > Render Response > It still skips Model Update phase and such, but it does not skip Process > Validation like it is suppose to. > This causes the form to be validated when it is not suppose to be validated. > I tried this with client side state saving and server side state saving with > the same behaviour. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira