I have a jsp containing two forms. The first form has database selection 
criteria, and the second form contains the results in a dataTable with each row 
containing a commandLink. The idea is to have a single view showing both the 
selections and the results. I tried splitting the selection and the results 
into separate views but that also failed in the same way.

When I run this via a my debugger the commandLink within the dataTable does not 
call it's action (searchSelect). Interestingly, when I copy/past this same 
commandLink beneath the dataTable it does execute the action.

I am using MyFaces and Tiles.

Any ideas?

Thanks in advance.

Dick

Here is my jsp:
...
<h:form id="operatorMntSearch">
  
  <h:panelGrid
    border="1"
    cellspacing="2"
    cellpadding="2"
    columns="3"
    footerClass="starraPanelGridFooter"
    headerClass="starraPanelGridHeader"
    styleClass="starraBody">
    
    <f:facet name="header">
      <h:outputText value="#{msg['class.SystemOperatorMnt']}"/>
    </f:facet>
    
    <f:facet name="footer">
      <h:panelGroup>
        <%@ include file="/jspf/common/searchButtons.jsp" %>
      </h:panelGroup>
    </f:facet>
    
    <h:outputLabel for="syOperatorId">
      <h:outputText value="#{msg['app.Operator.id']}"/>
      <h:outputText value="#{msg['symbol.sep1']}"/>
    </h:outputLabel>
    <h:panelGroup>
      <h:inputText id="syOperatorId" size="6" 
value="#{systemOperatorMnt.key01}"/>
    </h:panelGroup>
    <h:panelGroup>
      <h:commandButton action="#{commonHelp.helpGo}" id="operatorMntSub1" 
value="#{msg['button.Help']}"/>
    </h:panelGroup>
    
    <h:outputLabel for="name">
...
     
  </h:panelGrid>  
  
  </h:form>
  
  <h:form id="operatorMntSearchData">
    
    <h:dataTable
      border="1"
      cellspacing="2"
      value="#{systemOperatorMnt.searchModel}"
      var="systemOperatorBean">
      <h:column>
        <f:facet name="header">
          <h:outputText value="id"/>
        </f:facet>
        <h:commandLink action="#{systemOperatorMnt.searchSelect}" 
immediate="true">
          <h:outputText value="This link fails to call searchSelect. id= 
#{systemOperatorBean.syOperatorId}"/>
        </h:commandLink>
      </h:column>
      <h:column>
        <f:facet name="header">
          <h:outputText value="logonName"/>
        </f:facet>
        <h:outputText value="#{systemOperatorBean.logonName}"/>
      </h:column>
      <h:column>
        <f:facet name="header">
          <h:outputText value="name"/>
        </f:facet>
        <h:outputText value="#{systemOperatorBean.name}"/>
      </h:column>
    </h:dataTable>
    <h:commandLink action="#{systemOperatorMnt.searchSelect}" immediate="true">
      <h:outputText value="This link does call searchSelect. id= 
#{systemOperatorBean.syOperatorId}"/>
    </h:commandLink>
    
  </h:form>

This generates the following html:

<tr><td><label for="operatorMntSearch:logonName">Logon 
name:</label></td><td><input id="operatorMntSearch:logonName" 
name="operatorMntSearch:logonName" type="text" value="" maxlength="24" 
size="24" /></td><td></td></tr>
</tbody></table><input type="hidden" name="operatorMntSearch_SUBMIT" value="1" 
/><input type="hidden" name="jsf_sequence" value="11" /><input type="hidden" 
name="operatorMntSearch:_link_hidden_" /><script type="text/javascript"><!--
function clear_operatorMntSearch() {
  var f = document.forms['operatorMntSearch'];
  f.elements['operatorMntSearch:_link_hidden_'].value='';
  f.target='';
}
clear_operatorMntSearch();
//--></script></form><form id="operatorMntSearchData" 
name="operatorMntSearchData" method="post" 
action="/starraShale/systemOperatorMntSearch.faces" 
enctype="application/x-www-form-urlencoded">
<table border="1" cellspacing="2">

<thead>
<tr><th>id</th><th>logonName</th><th>name</th></tr></thead>
<tbody id="operatorMntSearchData:_idJsp53:tbody_element">
<tr><td><a href="#" 
onclick="bCancel=true;clear_operatorMntSearchData();document.forms['operatorMntSearchData'].elements['operatorMntSearchData:_link_hidden_'].value='operatorMntSearchData:_idJsp53:0:_idJsp56';if(document.forms['operatorMntSearchData'].onsubmit){var
 result=document.forms['operatorMntSearchData'].onsubmit();  if( (typeof result 
== 'undefined') || result ) 
{document.forms['operatorMntSearchData'].submit();}}else{document.forms['operatorMntSearchData'].submit();}return
 false;" id="operatorMntSearchData:_idJsp53:0:_idJsp56"> This link fails to 
call searchSelect. id= 1 </a> </td><td>demo</td><td>User;Demo</td></tr>
<tr><td><a href="#" 
...
{document.forms['operatorMntSearchData'].submit();}}else{document.forms['operatorMntSearchData'].submit();}return
 false;" id="operatorMntSearchData:_idJsp53:7:_idJsp56"> This link fails to 
call searchSelect. id= 8 </a> </td><td>hdumpty</td><td>Dumpty;Humpty</td></tr>

<tr><td><a href="#" 
onclick="bCancel=true;clear_operatorMntSearchData();document.forms['operatorMntSearchData'].elements['operatorMntSearchData:_link_hidden_'].value='operatorMntSearchData:_idJsp53:8:_idJsp56';if(document.forms['operatorMntSearchData'].onsubmit){var
 result=document.forms['operatorMntSearchData'].onsubmit();  if( (typeof result 
== 'undefined') || result ) 
{document.forms['operatorMntSearchData'].submit();}}else{document.forms['operatorMntSearchData'].submit();}return
 false;" id="operatorMntSearchData:_idJsp53:8:_idJsp56"> This link fails to 
call searchSelect. id= 9 </a> </td><td>jsprat</td><td>Sprat;Jack</td></tr>
<tr><td><a href="#" 
onclick="bCancel=true;clear_operatorMntSearchData();document.forms['operatorMntSearchData'].elements['operatorMntSearchData:_link_hidden_'].value='operatorMntSearchData:_idJsp53:9:_idJsp56';if(document.forms['operatorMntSearchData'].onsubmit){var
 result=document.forms['operatorMntSearchData'].onsubmit();  if( (typeof result 
== 'undefined') || result ) 
{document.forms['operatorMntSearchData'].submit();}}else{document.forms['operatorMntSearchData'].submit();}return
 false;" id="operatorMntSearchData:_idJsp53:9:_idJsp56"> This link fails to 
call searchSelect. id= 10 </a> </td><td>jnimble</td><td>Nimble;Jack</td></tr>
<tr><td><a href="#" 
onclick="bCancel=true;clear_operatorMntSearchData();document.forms['operatorMntSearchData'].elements['operatorMntSearchData:_link_hidden_'].value='operatorMntSearchData:_idJsp53:10:_idJsp56';if(document.forms['operatorMntSearchData'].onsubmit){var
 result=document.forms['operatorMntSearchData'].onsubmit();  if( (typeof result 
== 'undefined') || result ) 
{document.forms['operatorMntSearchData'].submit();}}else{document.forms['operatorMntSearchData'].submit();}return
 false;" id="operatorMntSearchData:_idJsp53:10:_idJsp56"> This link fails to 
call searchSelect. id= 11 </a> </td><td>jquick</td><td>Quick;Jack</td></tr>

<tr><td><a href="#" 
onclick="bCancel=true;clear_operatorMntSearchData();document.forms['operatorMntSearchData'].elements['operatorMntSearchData:_link_hidden_'].value='operatorMntSearchData:_idJsp53:11:_idJsp56';if(document.forms['operatorMntSearchData'].onsubmit){var
 result=document.forms['operatorMntSearchData'].onsubmit();  if( (typeof result 
== 'undefined') || result ) 
{document.forms['operatorMntSearchData'].submit();}}else{document.forms['operatorMntSearchData'].submit();}return
 false;" id="operatorMntSearchData:_idJsp53:11:_idJsp56"> This link fails to 
call searchSelect. id= 12 </a> 
</td><td>jhorner</td><td>Horner;Jack</td></tr></tbody></table>
<a href="#" 
onclick="bCancel=true;clear_operatorMntSearchData();document.forms['operatorMntSearchData'].elements['operatorMntSearchData:_link_hidden_'].value='operatorMntSearchData:_idJsp64';if(document.forms['operatorMntSearchData'].onsubmit){var
 result=document.forms['operatorMntSearchData'].onsubmit();  if( (typeof result 
== 'undefined') || result ) 
{document.forms['operatorMntSearchData'].submit();}}else{document.forms['operatorMntSearchData'].submit();}return
 false;" id="operatorMntSearchData:_idJsp64"> This link does call searchSelect. 
id= 0 </a> <input type="hidden" name="operatorMntSearchData_SUBMIT" value="1" 
/><input type="hidden" name="jsf_sequence" value="11" /><input type="hidden" 
name="operatorMntSearchData:_link_hidden_" /><script type="text/javascript"><!--
function clear_operatorMntSearchData() {
  var f = document.forms['operatorMntSearchData'];
  f.elements['operatorMntSearchData:_link_hidden_'].value='';
  f.target='';
}
clear_operatorMntSearchData();
//--></script></form>

Here is the code:

public String search() {
   
 ...

   searchList = operatorDaoServ.searchOperatorList(searchBean);
   if (searchList != null) {
     return Constants.OUTCOME_RESULTS;
   }
   else {
     return null;
   }
 }
 
 public String searchSelect() {
   
   // My <h:commandLink within my <h:dataTable is not calling this action.
   // TODO: get the data for the selected row.
   return null;
   
 }







Reply via email to