[richfaces-issues] [JBoss JIRA] Created: (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:50:54 EDT 2010


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) ;
    }<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>

-- 
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