ICEfaces
  1. ICEfaces
  2. ICE-1711

Facelet View Handler throws nested forms FacesException when using a flow-through template

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 1.6
    • Fix Version/s: 1.6.1
    • Component/s: Framework
    • Labels:
      None
    • Environment:
      Facelets & JSF (not necessarily just with Seam)
    • Affects:
      Compatibility/Configuration
    • Workaround Exists:
      Yes
    • Workaround Description:
      you have to create a <ui:insert name="value" for the possible values that will come along. Since the above seems to be a standard construct with facelets and the standard view handlers, we should make ours as easy to use as well.

      Description

      with the facelet page :-
      <ui:composition xmlns="http://www.w3.org/1999/xhtml"
                      xmlns:s="http://jboss.com/products/seam/taglib"
                      xmlns:ui="http://java.sun.com/jsf/facelets"
                      xmlns:f="http://java.sun.com/jsf/core"
                      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:ice="http://www.icesoft.com/icefaces/component"
                      template="layout/template.xhtml">
                             
      <ui:define name="body">
          
          <h:messages globalOnly="true" styleClass="message" id="globalMessages"/>
          
          <ice:form id="testEditTemplate" styleClass="edit">
              
              <ice:panelGroup styleClass="edit">
                  
                  
                <s:decorate template="layout/display.xhtml">
                      <ui:define name="label">firstName</ui:define>
                      <h:inputText id="firstName" value="first testValue using s:decorate"/>
                  </s:decorate>
                  
                  <ui:decorate template="layout/display.xhtml">
                      <ui:define name="label">firstName</ui:define>
                      <h:inputText id="firstName" value="second testValue using ui:decorate"/>
                  </ui:decorate>
                  
              </ice:panelGroup>
          </ice:form>
         </ui:define>
      </ui:composition>

      and the following template:-
      <ui:composition xmlns="http://www.w3.org/1999/xhtml"
                       xmlns:ui="http://java.sun.com/jsf/facelets"
                       xmlns:h="http://java.sun.com/jsf/html"
                       xmlns:f="http://java.sun.com/jsf/core">
                       
          <div class="prop">
              <span class="name">
                  <ui:insert name="label"/>
              </span>
              <span class="value">
                  <ui:insert/>
              </span>
          </div>
          
      </ui:composition>

      either instance (the s:decorate and the ui:decorate) do not understand the flowthrough of the class="value" of the template and get the following error:-

      18:07:43,803 ERROR [D2DFaceletViewHandler] Problem in renderResponse: Nested form found on the page. The form action element can not be nested
      javax.faces.FacesException: Nested form found on the page. The form action element can not be nested
      at com.icesoft.faces.renderkit.dom_html_basic.FormRenderer.validateNestingForm(FormRenderer.java:362)
      at com.icesoft.faces.renderkit.dom_html_basic.FormRenderer.validateNestingForm(FormRenderer.java:365)
      at com.icesoft.faces.renderkit.dom_html_basic.FormRenderer.validateNestingForm(FormRenderer.java:365)
      at com.icesoft.faces.renderkit.dom_html_basic.FormRenderer.validateNestingForm(FormRenderer.java:365)
      at com.icesoft.faces.renderkit.dom_html_basic.FormRenderer.validateNestingForm(FormRenderer.java:365)
      at com.icesoft.faces.renderkit.dom_html_basic.FormRenderer.encodeBegin(FormRenderer.java:83)
      at javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:512)

        Activity

        Hide
        Ted Goddard added a comment -

        Mark, please comment on the root cause.

        Show
        Ted Goddard added a comment - Mark, please comment on the root cause.
        Hide
        Mark Collette added a comment -

        It turns out that JBoss was shipping its own custom Facelets JAR with Seam 1.2.1 GA and Seam 1.3.0 which was derived from Facelets 1.1.12 plus their custom bugfix for this issue. Then for Seam 2.0.0 they started shipping stock Facelets 1.1.13a, which incorporates their bugfix. All that's documented here: http://fisheye.jboss.com/browse/JBoss/jboss-seam/lib/jsf-facelets.jar

        So I looked through the Facelets CVS logs and found these:

        /cvs/facelets/src/java/com/sun/facelets/tag/ui/DefineHandler.java
        revision 1.4
        date: 2007/05/06 17:35:04; author: jhook; state: Exp; lines: +8 -2
        Added changes from Gavin King

        /cvs/facelets/src/java/com/sun/facelets/tag/ui/DecorateHandler.java
        revision 1.14
        date: 2007/05/06 17:35:04; author: jhook; state: Exp; lines: +4 -4
        Added changes from Gavin King

        /cvs/facelets/src/java/com/sun/facelets/tag/ui/CompositionHandler.java
        revision 1.11
        date: 2007/05/06 17:35:04; author: jhook; state: Exp; lines: +3 -3
        Added changes from Gavin King

        I've backported these Facelets 1.1.13a changes back into our own custom icefaces-facelets.jar which is derived from Facelets 1.1.11, plus other backported bugfixes. The rationale being that we don't have time to fully upgrade to Facelets 1.1.13a in time for our ICEfaces 1.6.1 release. We will do that for ICEfaces 1.7.0 though.

        Subversion 14730
        3rd\facelets-1.1\src\java\com\sun\facelets\tag\ui\DefineHandler.java
        3rd\facelets-1.1\src\java\com\sun\facelets\tag\ui\DecorateHandler.java
        3rd\facelets-1.1\src\java\com\sun\facelets\tag\ui\CompositionHandler.java

        Show
        Mark Collette added a comment - It turns out that JBoss was shipping its own custom Facelets JAR with Seam 1.2.1 GA and Seam 1.3.0 which was derived from Facelets 1.1.12 plus their custom bugfix for this issue. Then for Seam 2.0.0 they started shipping stock Facelets 1.1.13a, which incorporates their bugfix. All that's documented here: http://fisheye.jboss.com/browse/JBoss/jboss-seam/lib/jsf-facelets.jar So I looked through the Facelets CVS logs and found these: /cvs/facelets/src/java/com/sun/facelets/tag/ui/DefineHandler.java revision 1.4 date: 2007/05/06 17:35:04; author: jhook; state: Exp; lines: +8 -2 Added changes from Gavin King /cvs/facelets/src/java/com/sun/facelets/tag/ui/DecorateHandler.java revision 1.14 date: 2007/05/06 17:35:04; author: jhook; state: Exp; lines: +4 -4 Added changes from Gavin King /cvs/facelets/src/java/com/sun/facelets/tag/ui/CompositionHandler.java revision 1.11 date: 2007/05/06 17:35:04; author: jhook; state: Exp; lines: +3 -3 Added changes from Gavin King I've backported these Facelets 1.1.13a changes back into our own custom icefaces-facelets.jar which is derived from Facelets 1.1.11, plus other backported bugfixes. The rationale being that we don't have time to fully upgrade to Facelets 1.1.13a in time for our ICEfaces 1.6.1 release. We will do that for ICEfaces 1.7.0 though. Subversion 14730 3rd\facelets-1.1\src\java\com\sun\facelets\tag\ui\DefineHandler.java 3rd\facelets-1.1\src\java\com\sun\facelets\tag\ui\DecorateHandler.java 3rd\facelets-1.1\src\java\com\sun\facelets\tag\ui\CompositionHandler.java
        Hide
        Mark Collette added a comment -

        Forgot to commit the built JAR.

        Subversion 14678
        icefaces\lib\icefaces-facelets.jar

        Show
        Mark Collette added a comment - Forgot to commit the built JAR. Subversion 14678 icefaces\lib\icefaces-facelets.jar

          People

          • Assignee:
            Unassigned
            Reporter:
            Judy Guglielmin
          • Votes:
            1 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: