Bouton de commande action ne fonctionne pas
J'ai cette dataTable:
<h:dataTable value="#{orderController.orderList}" var="order"
styleClass="table table-striped">
<h:column>
<f:facet name="header">#</f:facet>
<h:outputText value="#{order.orderNo}" escape="false"/>
</h:column>
<h:column>
<f:facet name="header">Cliente</f:facet>
<h:outputText value="#{order.client}" escape="false"/>
</h:column>
<h:column>
<f:facet name="header">Data</f:facet>
<h:outputText value="#{order.date}" escape="false"/>
</h:column>
<h:column>
<f:facet name="header">Status</f:facet>
<h:outputText value="#{order.status}" escape="false"/>
</h:column>
<h:column>
<f:facet name="header"></f:facet>
<h:form>
<h:commandButton action="#{orderController.orderDetail}" value="Detalhe" styleClass="btn btn-info"/>
</h:form>
</h:column>
</h:dataTable>
Je vous montre une liste de commandes et de chaque liste a un bouton "Détail" qui va rediriger l'utilisateur vers la orderDetail.html
page à l'intérieur de views/fornecedores
.
J'ai débogué et quand je clique sur le commandButton
, il n'est pas à appeler mes haricots fonction.[
J'ai aussi essayé ceci: <h:commandButton action="views/fornecedores/orderDetail.html" value="Detalhe" styleClass="btn btn-info"/>
et de rien, il me tient redirigeant vers la même page, orderSearch.html
.
Ce dont j'ai besoin est d'appeler la méthode qui permettra de recevoir un orderNo
paramètre et va charger l'objet et le rediriger vers le orderDetail.html
page.
Ce que je fais mal ou ce qui est la meilleure façon de cette approche?
Vous devez vous connecter pour publier un commentaire.
Dans ce cas particulier, ce qui peut arriver lorsque vous êtes à l'imbrication de formes qui est illégal dans le HTML. Cela peut également se produire lorsque la
#{orderController}
est la portée de la requête et de laorderList
contenu dépend de la demande en fonction de la valeur qui provoque que la liste est incompatibilité changé lorsque le formulaire de soumission doit être traitée.Donc, assurez-vous que vous n'êtes pas imbrication de plusieurs
<h:form>
composants les uns dans les autres et assurez-vous que le#{orderController}
est un@ViewScoped
bean et que vous n'êtes pas de la manipulation de laorderList
dans sa méthode de lecture.Voir aussi:
De votre béton à l'exigence fonctionnelle, la
<h:link>
avec<f:param>
et<f:viewParam>
est plus sain d'esprit pour cette approche. C'est bookmarkable et plus SEO friendly. Voir aussi La Communication en JSF 2.0 - Traitement OBTENIR les paramètres de la demande.<h:form>
balises et je sais que c'est terriblement mauvais. Je vais essayer d'utiliser les balises que vous avez mentionné.