Bonjour à tous et toutes,

Je me permets de vous demander de l'aide. Voici la situation :

J'utilise JSF et Spring pour construire une appli web. L'archi est en place, j'ai juste du mal à faire intéragir mes beans entre eux. Voici l'exemple :

J'ai deux pages : la première, list.jsf, est liée à un bean ListBean. Sur cette page, j'ai bien ma liste de données qui s'affiche, retournée par Hibernate. J'ai trois boutons, Ajouter, Editer et Supprimer.

J'ai crée ma seconde page, page.jsf, liée à un PageBean. Mon problème est que je souhaite, au moment ou l'utilisateur appuie sur Ajouter ou Editer, la page page.jsf s'ouvre soit en mode ajout, donc un formulaire vierge, soit en mode édition avec le formulaire pré-rempli.

J'espère que jusqu'ici je suis clair.

Voici quelques bouts de code :

ListBean :

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
@Named
@Scope("request")
@URLMapping(id = "list", pattern = "/data/list", viewId = "/data/list.jsf")
public class ListBean implements Serializable {
	/**
         * 
         */
	private static final long serialVersionUID = 1L;
 
	@Inject
	ListService listService;
 
	@Inject
	UserInfo user;
 
	/**
         * Fields
         */
 
	public ListBean() {
	}
 
	public Report getListByUser() {
		return listService.getListByUser(user);
	}
 
}
Voici le bouton de la page list.xhtml qui ouvre la page en mode ajout :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
				<p:button value="#{msg.add}" href="page"></p:button>
Et le bouton qui est censé ouvrir la page en mode edition (c'est la ou ça ne fonctionne pas) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
<p:commandButton value="#{msg.edit}" action="syllabus-page">
	<f:param name="addMode" value="false" />
	<f:param name="id" value="#{syl.id}" />
</p:commandButton>
Et voici mon PageBean :

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
32
33
@Named
@Scope("view")
@URLMapping(id = "page", pattern = "/data/page", viewId = "/data/page.jsf")
public class PageBean implements Serializable {
	/**
         * 
         */
	private static final long serialVersionUID = 1L;
 
	@Inject
	PageService pageService;
 
	@Inject
	UserInfo user;
 
	int id;
 
	Data currentData;
 
	boolean addMode = true;
 
	public SyllabusPageBean() {
 
		Map<String, String> params = FacesContext.getCurrentInstance()
				.getExternalContext().getRequestParameterMap();
		if (params != null && !params.isEmpty()) {
			addMode = Boolean.parseBoolean(params.get("addMode"));
			sylid = Integer.parseInt(params.get("id"));
 
			currentData = pageService.findDataByID(id);
		}
	}
}
Voilà, en espérant que quelqu'un puisse m'aider... Merci d'avance !