Bonjour et meilleurs vœux à tous ...
Je suis en train de développer une appli web basée sur JSF et RichFaces.
J'ai une page de recherche qui m'affiche une liste de resultats dans une datatable.
Chaque ligne de la table à une colonne sur laquelle j'ai mis un commandLink qui devrait m'ouvrir une page d'edition pour la ligne selectionnée.
Code de ma datatable
Code de la méthode appelé dans mon bean
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
23
24
25
26
27
28
29
30
31 <h:form> <a4j:outputPanel id="resultTable"> <rich:panel rendered="#{retrieveExperimentBean.experimentsSize > 0}" > <f:facet name="header"><h:outputText value="#{msg['manageExperiment.label.result']} : #{retrieveExperimentBean.experimentsSize}" /> </f:facet> <h:panelGrid id="panelResult" columns="1" width="100%" > <rich:dataTable align="center" binding="#{retrieveExperimentBean.experimentsTable}" value="#{retrieveExperimentBean.experiments}" rows="10" var="exp" id="dt"> <rich:column sortBy="#{exp.id.code}"> <f:facet name="header"><h:outputText value="#{msg['manageExperiment.label.experiment']}" /></f:facet> <h:commandLink immediate="true" action="#{retrieveExperimentBean.editExperiment}" value="#{exp.id.code}"/> </rich:column> <rich:column sortBy="#{exp.definition}"> <f:facet name="header"><h:outputText value="#{msg['manageExperiment.label.definition']}" /></f:facet> <h:outputLabel value="#{exp.definition}" /> </rich:column> <rich:column sortBy="#{exp.type.id.code}"> <f:facet name="header"><h:outputText value="#{msg['manageExperiment.label.type']}" /></f:facet> <h:outputLabel value="#{exp.type.id.code}"/> </rich:column> <rich:column sortBy="#{exp.startDate}"> <f:facet name="header"><h:outputText value="#{msg['manageExperiment.label.startDate']}" /></f:facet> <h:outputLabel value="#{exp.startDate.time}"><f:convertDateTime pattern="#{msg['pattern.date']}" /></h:outputLabel> </rich:column> <f:facet name="footer" width="50%"> <rich:datascroller align="center" for="dt" id="ds" renderIfSinglePage="false"></rich:datascroller> </f:facet> </rich:dataTable> </h:panelGrid> </rich:panel> </a4j:outputPanel> </h:form>
Code des regles de navigation dans le face-config.xml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 /** * Edit experiment action * * @return */ public String editExperiment() { Experiment experiment = (Experiment) this.experimentsTable.getRowData(); sgaLogger.debug(experiment.toString()); return SgaForward.EXPERIMENT_EDIT; }
Le problème est que je n'arrive pas à rentrer dans la méthode de mon bean (editExperiment).
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
23 <navigation-rule> <navigation-case> <from-outcome>editExperiment</from-outcome> <to-view-id>/pages/manageExperiment/updateExperiment.xhtml</to-view-id> <redirect /> </navigation-case> <navigation-case> <from-outcome>retrieveExperiment</from-outcome> <to-view-id>/pages/manageExperiment/retrieveExperiment.xhtml</to-view-id> <redirect /> </navigation-case> <navigation-case> <from-outcome>findExperiments</from-outcome> <to-view-id>/pages/manageExperiment/findExperiment.xhtml</to-view-id> <redirect /> </navigation-case> <navigation-case> <from-outcome>findOneExperiment</from-outcome> <to-view-id>/pages/manageExperiment/findOneExperiment.xhtml</to-view-id> <redirect /> </navigation-case> </navigation-rule>
PS : si je mets le lien en dehors de la datatable, ca marche et je rentre bien dans la méthode de mon bean (editExperiment).
Merci pour vos conseils ...
Partager