[richfaces-issues] [JBoss JIRA] Updated: (RF-9529) rich:popupPanel with a4j:commandButton. After an ajax submit there are no values submitted

P N (JIRA) jira-events at lists.jboss.org
Mon Oct 18 14:52:54 EDT 2010


     [ https://jira.jboss.org/browse/RF-9529?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

P N updated RF-9529:
--------------------

    Description: 
On my page i´m using a rich:popupPanel. On this panel i have a form and some input field (for test only 1) and an a4j:commandbutton with it. I want to make an Ajax Request on it to save the data, when i click the button the actionListener is called, but i get no value from the input field, i always get null. If i test this on a normal page, without a rich:popupPanel it works.It works when i use a <h:commandButton actionListener="#{myActionListener.method}"> <f:ajax execute="@form" render="@form"/>, then the data is submitted. 

Example: 

<rich:popupPanel
            id="popup"
            modal="true"
            height="600"
            width="800"
            resizeable="true"
        >
            <f:facet name="header">
                    <h:outputText value="Create new Project"/>
                </f:facet>
 
                <f:facet name="controls">
                    <h:form
                        prependId="false"
                        id="insidefrm"
                    >
                        <a4j:commandLink
                            actionListener="#{projectVC.close}"
                            oncomplete="#{rich:component('popup')}.hide();"
                        >
                            <h:graphicImage
                                value="/resources/ui-richfaces/gfx/close.gif"
                            />
                        </a4j:commandLink>
                    </h:form>
                </f:facet>
 
                <h:form
                    id="popupfrm"
                >
                    <h:panelGrid id="errmsg">
                        <h:messages id="msg"/>
                    </h:panelGrid>
 
                <h:panelGrid
                    columns="4"
                    columnClasses="columnslabel,columnstextfield,columnslabel,columnstextfield"
                >
                    <h:outputLabel
                        for="txttitle"
                        value="Title"
                        styleClass="labelfortext"
                    />
 
                    <h:inputText
                        id="txttitle"
                        value="#{projectVM.budget}"
                        styleClass="textafterlabelblack"
                        required="true"
                        autocomplete="off">
                    </h:inputText>
                </h:panelGrid>

                <a4j:commandButton
                    id="save"
                    value="save"
                    execute="@form"
                    render="projecttbl errmsg" <!-- After click i want to reRender a Datatable -->
                    actionListener="#{projectVC.saveTest}"
                >
                </a4j:commandButton>
            </h:form>
 
        </rich:popupPanel>
 
Controller code
public void saveTest(ActionEvent event) {
        log.debug("Test Ajax ");
        if(getProjectVM().getBudget() != null ) {
            log.debug("You Entered ["
                    + getProjectVM().getBudget() + "]");
        }
        FacesUtils.addMessageIntoContextSeverityInfo(null, "Just an Info Message", null) ;
    }

When i change in the popup from a4j:commandButton to (then it works as supposed) 
<h:commandButton
      id="save"
      value="save"
      actionListener="#{projectVC.saveTest}"
 >
      <f:ajax
        execute="@form"
        render=":datatablefrm @form"
       />
</h:commandButton>

  was:
On my page i´m using a rich:popupPanel. On this panel i have a form and some input field (for test only 1) and an a4j:commandbutton with it. I want to make an Ajax Request on it to save the data, when i click the button the actionListener is called, but i get no value from the input field, i always get null. If i test this on a normal page, without a rich:popupPanel it works.It works when i use a <h:commandButton actionListener="#{myActionListener.method}"> <f:ajax execute="@form" render="@form"/>, then the data is submitted. 

Example: 

<rich:popupPanel
            id="popup"
            modal="true"
            height="600"
            width="800"
            resizeable="true"
        >
            <f:facet name="header">
                    <h:outputText value="Create new Project"/>
                </f:facet>
 
                <f:facet name="controls">
                    <h:form
                        prependId="false"
                        id="insidefrm"
                    >
                        <a4j:commandLink
                            actionListener="#{projectVC.close}"
                            oncomplete="#{rich:component('popup')}.hide();"
                        >
                            <h:graphicImage
                                value="/resources/ui-richfaces/gfx/close.gif"
                            />
                        </a4j:commandLink>
                    </h:form>
                </f:facet>
 
                <h:form
                    id="popupfrm"
                >
                    <h:panelGrid id="errmsg">
                        <h:messages id="msg"/>
                    </h:panelGrid>
 
                <h:panelGrid
                    columns="4"
                    columnClasses="columnslabel,columnstextfield,columnslabel,columnstextfield"
                >
                    <h:outputLabel
                        for="txttitle"
                        value="Title"
                        styleClass="labelfortext"
                    />
 
                    <h:inputText
                        id="txttitle"
                        value="#{projectVM.budget}"
                        styleClass="textafterlabelblack"
                        required="true"
                        autocomplete="off">
                    </h:inputText>
                </h:panelGrid>
                <a4j:commandButton
                    id="save"
                    value="save"
                    execute="@form"
                    render="projecttbl errmsg" <!-- After click i want to reRender a Datatable -->
                    actionListener="#{projectVC.saveTest}"
                >
                </a4j:commandButton>
            </h:form>
 
        </rich:popupPanel>
 
Controller code
public void saveTest(ActionEvent event) {
        log.debug("Test Ajax ");
        if(getProjectVM().getBudget() != null ) {
            log.debug("You Entered ["
                    + getProjectVM().getBudget() + "]");
        }
        FacesUtils.addMessageIntoContextSeverityInfo(null, "Just an Info Message", null) ;
    }<rich:popupPanel
            id="popup"
            modal="true"
            height="600"
            width="800"
            resizeable="true"
        >
            <f:facet name="header">
                    <h:outputText value="Create new Project"/>
                </f:facet>
 
                <f:facet name="controls">
                    <h:form
                        prependId="false"
                        id="insidefrm"
                    >
                        <a4j:commandLink
                            actionListener="#{projectVC.close}"
                            oncomplete="#{rich:component('popup')}.hide();"
                        >
                            <h:graphicImage
                                value="/resources/ui-richfaces/gfx/close.gif"
                            />
                        </a4j:commandLink>
                    </h:form>
                </f:facet>
 
                <h:form
                    id="popupfrm"
                >
                    <h:panelGrid id="errmsg">
                        <h:messages id="msg"/>
                    </h:panelGrid>
 
                <h:panelGrid
                    columns="4"
                    columnClasses="columnslabel,columnstextfield,columnslabel,columnstextfield"
                >
                    <h:outputLabel
                        for="txttitle"
                        value="Title"
                        styleClass="labelfortext"
                    />
 
                    <h:inputText
                        id="txttitle"
                        value="#{projectVM.budget}"
                        styleClass="textafterlabelblack"
                        required="true"
                        autocomplete="off">
                    </h:inputText>
                </h:panelGrid>
                <a4j:commandButton
                    id="save"
                    value="save"
                    execute="@form"
                    render="projecttbl errmsg" <!-- After click i want to reRender a Datatable -->
                    actionListener="#{projectVC.saveTest}"
                >
                </a4j:commandButton>
            </h:form>
 
        </rich:popupPanel>
 
This is my Controller code
public void saveTest(ActionEvent event) {
        log.debug("Test Ajax ");
        if(getProjectVM().getBudget() != null ) {
            log.debug("You Entered ["
                    + getProjectVM().getBudget() + "]");
        }
        FacesUtils.addMessageIntoContextSeverityInfo(null, "Just an Info Message", null) ;
    }

When i change in the popup from a4j:commandButton to (then it works as supposed) 
<h:commandButton
      id="save"
      value="save"
      actionListener="#{projectVC.saveTest}"
 >
      <f:ajax
        execute="@form"
        render=":datatablefrm @form"
       />
                </h:commandButton>



> rich:popupPanel with a4j:commandButton. After an ajax submit there are no values submitted
> ------------------------------------------------------------------------------------------
>
>                 Key: RF-9529
>                 URL: https://jira.jboss.org/browse/RF-9529
>             Project: RichFaces
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>          Components: component-a4j-core
>    Affects Versions: 4.0.0.Milestone3
>         Environment: Richfaces M2 and M3
>            Reporter: P N
>
> On my page i´m using a rich:popupPanel. On this panel i have a form and some input field (for test only 1) and an a4j:commandbutton with it. I want to make an Ajax Request on it to save the data, when i click the button the actionListener is called, but i get no value from the input field, i always get null. If i test this on a normal page, without a rich:popupPanel it works.It works when i use a <h:commandButton actionListener="#{myActionListener.method}"> <f:ajax execute="@form" render="@form"/>, then the data is submitted. 
> Example: 
> <rich:popupPanel
>             id="popup"
>             modal="true"
>             height="600"
>             width="800"
>             resizeable="true"
>         >
>             <f:facet name="header">
>                     <h:outputText value="Create new Project"/>
>                 </f:facet>
>  
>                 <f:facet name="controls">
>                     <h:form
>                         prependId="false"
>                         id="insidefrm"
>                     >
>                         <a4j:commandLink
>                             actionListener="#{projectVC.close}"
>                             oncomplete="#{rich:component('popup')}.hide();"
>                         >
>                             <h:graphicImage
>                                 value="/resources/ui-richfaces/gfx/close.gif"
>                             />
>                         </a4j:commandLink>
>                     </h:form>
>                 </f:facet>
>  
>                 <h:form
>                     id="popupfrm"
>                 >
>                     <h:panelGrid id="errmsg">
>                         <h:messages id="msg"/>
>                     </h:panelGrid>
>  
>                 <h:panelGrid
>                     columns="4"
>                     columnClasses="columnslabel,columnstextfield,columnslabel,columnstextfield"
>                 >
>                     <h:outputLabel
>                         for="txttitle"
>                         value="Title"
>                         styleClass="labelfortext"
>                     />
>  
>                     <h:inputText
>                         id="txttitle"
>                         value="#{projectVM.budget}"
>                         styleClass="textafterlabelblack"
>                         required="true"
>                         autocomplete="off">
>                     </h:inputText>
>                 </h:panelGrid>
>                 <a4j:commandButton
>                     id="save"
>                     value="save"
>                     execute="@form"
>                     render="projecttbl errmsg" <!-- After click i want to reRender a Datatable -->
>                     actionListener="#{projectVC.saveTest}"
>                 >
>                 </a4j:commandButton>
>             </h:form>
>  
>         </rich:popupPanel>
>  
> Controller code
> public void saveTest(ActionEvent event) {
>         log.debug("Test Ajax ");
>         if(getProjectVM().getBudget() != null ) {
>             log.debug("You Entered ["
>                     + getProjectVM().getBudget() + "]");
>         }
>         FacesUtils.addMessageIntoContextSeverityInfo(null, "Just an Info Message", null) ;
>     }
> When i change in the popup from a4j:commandButton to (then it works as supposed) 
> <h:commandButton
>       id="save"
>       value="save"
>       actionListener="#{projectVC.saveTest}"
>  >
>       <f:ajax
>         execute="@form"
>         render=":datatablefrm @form"
>        />
> </h:commandButton>

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

       



More information about the richfaces-issues mailing list