title: Not able to capture data from an InputText inside a datatable in jsf
body: <p>I have a <code>datatable</code> where I have two columns.</p>
  
  <p>column 1 : output text, gets populated from bean data. 
  coulmn 2 : input text boxes</p>
  
  <p>I have made column1 as a <code>commandLink</code> on which I have attached an <code>actionListener</code>. The aim is that When i click on a row on UI the selected row data should be captured in bean.</p>
  
  <p>here is the code : </p>
  
  <pre><code>&lt;h:dataTable id="headerOverrides" styleClass="header" headerClass="headerTable"
    cellpadding="0" cellspacing="0" width="100%"&gt;
          &lt;h:column&gt;
              &lt;f:facet name="header"&gt;
                  &lt;h:commandLink id="payment_Fund_Name" styleClass="header"
                      actionListener="#{pc_Billing.sortColumn}"
                      onmouseover="resetTargetFrame();"&gt;
                      &lt;h:outputText style="width:150px" 
                        value="#{bundle.billing_Fund_Name}"&gt;                                                    
                      &lt;/h:outputText&gt;
                  &lt;/h:commandLink&gt;
             &lt;/f:facet&gt;
          &lt;/h:column&gt;
          &lt;h:column&gt;
             &lt;f:facet name="header"&gt;
                  &lt;h:commandLink id="allocation_Percent" styleClass="header"
                      actionListener="#{pc_Billing.sortColumn}"
                      onmouseover="resetTargetFrame();"&gt;
                      &lt;h:outputText style="width:65px" value="#{bundle.billing_Allocation_Percent}"&gt;
                      &lt;/h:outputText&gt;
                  &lt;/h:commandLink&gt;                            
             &lt;/f:facet&gt;
          &lt;/h:column&gt;
  &lt;/h:dataTable&gt;
  &lt;/td&gt;
  &lt;/tr&gt;
  
  &lt;tr&gt;
  &lt;td colspan="2"&gt;
      &lt;div class="divTable" style="height: 176px" id="overrideTableData"&gt;
      &lt;h:dataTable id="overrideTable" value="#{pc_Billing.overrideFundsList}"
                  var="currentRow" columnClasses="column" headerClass="header"
                      rowClasses="#{pc_Billing.paymentRowStyles}" binding="#{pc_Billing.allocationOverrideTable}"
                      styleClass="complexTable" cellpadding="2" cellspacing="0"
                      width="100%" border="1" &gt;
  
  
            &lt;h:column id="override_Fund"&gt;
              &lt;h:commandLink onmouseover="resetTargetFrame();" id="override_FundLink"
                              actionListener="#{pc_Billing.selectFromRow}" immediate="true"
                              styleClass="textTable" style="width:100%"&gt;
                       &lt;h:outputText styleClass="textTable"
                                 value="#{currentRow.fundName}" style="width:140px"&gt;
                        &lt;/h:outputText&gt;
              &lt;/h:commandLink&gt;
             &lt;/h:column&gt;
             &lt;h:column id="override_Allocation"&gt;
                &lt;h:inputText id="allocation_Percent" styleClass="textInput" value="#{currentRow.allocation}"
                                  disabled="#{!(pc_Billing.loanPayment || pc_Billing.universalLife)}" onblur="totalFrom();"
                                  style="width:70px"&gt;
                    &lt;f:convertNumber type="percent" /&gt;
                &lt;/h:inputText&gt;
          &lt;/h:column&gt;
      &lt;/h:dataTable&gt;
  </code></pre>
  
  <p>The <code>selectFromRow</code> method from bean</p>
  
  <pre><code>public void selectFromRow(ActionEvent e) {
  
          if (e.getComponent().getId().equalsIgnoreCase("override_FundLink")) {
              paymentOverrideSelectedRow = (PaymentOverride) allocationOverrideTable.getRowData();
              allocationOverrideTableData.setFundName(paymentOverrideSelectedRow.getFundName());
              allocationOverrideTableData.setAllocation(paymentOverrideSelectedRow.getAllocation());
  
          }else if(e.getComponent().getId().equalsIgnoreCase("fundLink"))
          {
              preimumOverrideSelectedRow = (PremiumOverride) premiumOverrideTable.getRowData();
              premiumOverrideTableData.setFundName(preimumOverrideSelectedRow.getFundName());
              premiumOverrideTableData.setAmount(preimumOverrideSelectedRow.getAmount());
              premiumOverrideTableData.setEndDate(preimumOverrideSelectedRow.getEndDate());
              premiumOverrideTableData.setInterestRate(preimumOverrideSelectedRow.interestRate);
          }
  
      FacesContext.getCurrentInstance().renderResponse();
      }
  </code></pre>
  
  <p>Now what is happening is that I am not getting the data from the input text boxes on table. it is null. What am I missing? 
  Also when the <code>selectFromRow</code> function executes the table renders and the data I enter in text boxes is wiped out.  </p>