Primefaces commandButton action ne fonctionne pas

J'ai un Primefaces projet avec les actions suivantes fichier xhtml:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html 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"
xmlns:p="http://primefaces.org/ui">
<h:body>
<ui:composition>       
<h:form>
<p:dataTable id="parameters" var="parameter" value="#{devTestController.parameters}" 
editable="true" editMode="cell" widgetVar="parameterTable" 
selection="#{devTestController.selectedRow}" selectionMode="single"
rowKey="#{parameter}">  
<f:facet name="header">
Parameters
</f:facet>
<p:column headerText="Parameter Name" style="width:30%">  
<p:cellEditor>  
<f:facet name="output"><h:outputText value="#{parameter.label}" /></f:facet>  
<f:facet name="input"><p:inputText id="parameterNameInput" value="#{parameter.label}" style="width:96%"/></f:facet>  
</p:cellEditor>  
</p:column>  
<p:column headerText="Parameter Value" style="width:60%">  
<p:cellEditor>  
<f:facet name="output"><h:outputText value="#{parameter.value}" /></f:facet>  
<f:facet name="input"><p:inputText value="#{parameter.value}" style="width:96%" label="Parameter Value"/></f:facet>
</p:cellEditor>  
</p:column>
<p:column headerText="Action" style="width:10%">
<p:commandButton value="Button in table" action="#{devTestController.doAction()}"/>  
</p:column>
</p:dataTable>  
<p:commandButton value="Button outside table" action="#{devTestController.doAction()}"/>
</h:form>
<p:commandButton value="Button outside form" action="#{devTestController.doAction()}"/>
</ui:composition>     
</h:body>
</html>

Ici j'ai 3 boutons de commande (p:commandButton). L'un est à l'intérieur de la dataTable (itération composant), on est à l'extérieur de la dataTable et on est en dehors de h:formulaire.
Étonnamment, le seul travail est à l'extérieur de l'h:forme (la dernière). J'ai été chercher sur internet pour 5 heures et déjà essayé beaucoup de choses. Je ne comprends pas pourquoi ce qui se passe. J'ai lu beaucoup de messages concernant des problèmes similaires, mais aucun n'a résolu mon cas. Un assez bon est cette par BalusC. J'ai lu tous les cas et je ne peux pas trouver une réponse. J'ai d'abord soupçonné que j'ai imbriqué plusieurs UIForm composants les uns des autres (cas 2) et j'ai cherché dans l'original fichier xhtml qui comprend l'un au-dessus, mais ce n'est pas le cas. Je n'ai pas d'autres h:balises de formulaire dans mon code à l'exception de celui-ci. Après tout, si je supprimer complètement le h:balise de formulaire, puis pas de bouton de commande fonctionne et je reçois aussi les "Le composant formulaire doit avoir un UIForm dans son ascendance. Suggestion: inclure les composants nécessaires au sein de h:formulaire" avertissement. Ce qui pourrait aller mal ici?