bonjour à tous,

Je cherche à optimiser ce bout de code qui fait partie d'une appli web basée sur struts, spring et hibernate.

Dans l'action 1, je charge une liste de boutiques et l'affiche dans une liste déroulante dans ma jsp.

action :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
	public String listerSite() throws Exception {
		logSiteAction.debug("Site Spring ");
		siteBo.printUser();
		listeSites = siteBo.findAllSite();
		return "success";
	}
jsp :
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
 
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@page contentType="text/html;charset=ISO-8859-1" import="java.util.ArrayList" isErrorPage="false" %>
<%@page contentType="text/html;charset=ISO-8859-1" import="org.isiad.wos.entity.Site" isErrorPage="false" %>
<div>
 
			<form name="selectSite" action="./saveSiteSession" method="post">
 
				<SELECT name="id_site" size="1">
						<OPTION value="0">Selectionnez un site</OPTION>
						<c:forEach items="${listeSites}" var="b">
							<OPTION value="${b.id_site}">${b.nom_site}</OPTION>
						</c:forEach>
					</SELECT>
					<input type="submit" value="SELECT"></input>
			</form>
L'internaute doit sélectionner une boutique dans la LD, puis Valider, ce qui appelle mon action 2.

Dans mon action 2, je cherche à récupérer l'objet boutique sélectionné.
Malheureusement pour l'instant, je récupère seulement l'id_boutique, et je dois aller le rechercher en base de données.

action2 :
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
private Site site;
private int id_site;
private ArrayList<Site> listSite = new ArrayList<Site>();
SiteBo siteBo;

public String saveSession(){
		
		try{
		listSite = siteBo.findSiteById(getId_site());}
		catch(Exception e){
			System.out.println(e.getMessage());
		}
		site = listSite.get(0);
		System.out.println("coucou site : "+site.getNom_site());
			
		
		//mise en session
		HttpServletRequest req = ServletActionContext.getRequest();
		HttpSession session = req.getSession();

		session.setAttribute("Site", site);
				
				
		return "success";
		
		
		
		
	}

Il serait pourtant logique que l'objet boutique soit directement récupérable.

Ca se joue donc dans la jsp je suppose, et ce que j'envoi à mon action
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
	<form name="selectSite" action="./saveSiteSession" method="post">
			
				<SELECT name="id_site" size="1">
						<OPTION value="0">Selectionnez un site</OPTION>
						<c:forEach items="${listeSites}" var="b">
							<OPTION value="${b}">${b.nom_site}</OPTION>
						</c:forEach>
					</SELECT>
					<input type="submit" value="SELECT"></input>
			</form>
Pouvez vous m'aider svp?
Merci d'avance, olivier