Bonjour,

J'essaie de faire une application de gestion de livre avec un catalogue. Dans le catalogue administrateur j'affiche mes données avec un datatable dans lequel je place certains champ modifiable dont un selectOneMenu correspondant à l'état de mon livre. La modification global de ce catalogue fonctionne très bien. Cependant au bout de chaque ligne de ce catalogue j'aimerai faire un lien vers la fiche détaillée du livre sélectionné.
Et là ca coince, mon CommandButton qui redirige vers ma page détaillée valide l'intégralité du formulaire et là le selectOneMenu provoque alors une erreur de validation. Pour éviter la validation du formulaire qui ne m'es d'aucune utilité ici j'ai passé le type de mon CommandButton à type="button", mais maintenant il ne lance plus rien.

Je n'ai pas besoin des données du formulaire, donc je n'ai pas besoin de converter. J'ai également essayé la nouvelle tag de JSF <button> mais l'attribut "outcome" me lance les méthodes (appelé normalement au click) lors de la création de la page...

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
<h:form >
            <h:dataTable value="#{bookBean.listBook}" var="book" 
                         cellpadding="1" border="1" width="550">
 
                <!-- Ce SelectOneMenu ne doit pas etre submit pour éviter des erreurs-->
                <h:column>
                    <f:facet name="header" >
                        <h:outputText value="Etat des stocks"/>
                    </f:facet>
                    <h:selectOneMenu  value="#{book.stateBook}">
                        <f:selectItems  value="#{bookBean.listState}" var="state" itemLabel="#{state}" itemValue="#{state}"/>
                        <f:ajax listener="#{bookBean.changeCatalog(book)}"/>
                    </h:selectOneMenu>
                </h:column>
 
                <!--Ici la méthode bookDetails(Book book) renvoie la page détaillée avec les information du livre passé en paramètre -->
                <h:column>
                        <h:commandButton value="Fiche" type="button"  action="#{bookBean.bookDetails(book)}" />
                </h:column>
            </h:dataTable>
        </h:form>
Je précise que avec un type submit et sans le selectonemenu, je n'ai pas d'autre erreur donc seule le submit de cette ligne gène. Je pense qu'un type="button" devrait éviter ça, mais comment le faire fonctionner?

Merci beaucoup