salut

je suis en stage, je travaille avec Struts et hibernate et j'ai un probleme le chainage de deux actions:

publierEnQualif qui recupere le chemin d'une version de courrier (nom du courrier+n de version.rtf)se trouvant dans un repertoire precis et le copie dans un autre sous le nom (nom du courrier.rtf) et met a jour la base de données mais si le fichier est deja publier en Qualif l'action delegue le travail a une autre publierEnQualifBis apres confirmation de l'administrateur, je vous donne le code que j'ai fait

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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
public ActionForward publierEnQualif(ActionMapping mapping,
			ActionForm form, HttpServletRequest request,
			HttpServletResponse response) throws ApplicationException
			{
 
		ActionForward actionForward = null;
		RechercheCourrierForm courrierForm = (RechercheCourrierForm) form;
		CriteresRechercheCourrierDto critereCourrierDto = new CriteresRechercheCourrierDto();
		List versionTrouve = new ArrayList();
 
		critereCourrierDto = CourrierUtil.createCriteresCourrier(
				critereCourrierDto, courrierForm);
 
		UserBean ub = (UserBean) UserHelper.getUserFromRequest(request);
		String nomCodier = ub.getSchema();
 
		//recuperer le chemin du repertoire ou sont stockés les modeles de
		// fusion
 
		String nomRepertoireModelFusion = CodierService.getInstance()
				.recupererCodierParCodeFamilleEtCodeCodier(
						Constants.FAMILLE_PGN, Constants.PGN_RACFUS)
				.getChaine1();
 
		//nom des fichiers destinees pour la modification des versions
		String source = nomRepertoireModelFusion + "\\" + nomCodier + "\\"
				+ Constants.REP_ADMINISTRATION + "\\"
				+ request.getParameter("nom");
		source = source.replaceAll(Constants.MODELE_END_WITH,
				critereCourrierDto.getVersion() + Constants.MODELE_END_WITH);
 
		String destination = nomRepertoireModelFusion + "\\" + nomCodier + "\\"
				+ Constants.REP_QUALIFICATION + "\\"
				+ request.getParameter("nom");
 
		HttpSession session = request.getSession(true);
 
		//mettre la destination et source dans la session pour les recuperer
		// dans l'action publierEnQualifBis
		session.setAttribute("destinationQualif", destination);
		session.setAttribute("sourceQualif", source);
 
		File file = new File(destination);
		String existe = "non";
		PrintWriter sortieForm = response.getWriter();
		StringBuffer buff = new StringBuffer();
		if (file.exists()) {
			existe = "oui";
			request.setAttribute("existQualif", existe);
			session.setAttribute("version", critereCourrierDto.getVersion());
 
 
 
		}
 
		else {
			critereCourrierDto.setAction("notVersion");
			CourrierService.getInstance().copierFichier(destination, source);
			CourrierService.getInstance().updateListeVersions(
					critereCourrierDto, true);
		}
 
		actionForward = this.rechercheVersions(mapping, courrierForm, request,
				response);
				actionForward = mapping.findForward(Constants.SUCCESS_KEY);
 
		return actionForward;
	}
et l'autre action
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
public ActionForward publierEnQualifBis(ActionMapping mapping,
			ActionForm form, HttpServletRequest request,
			HttpServletResponse response) throws ApplicationException {
 
		ActionForward actionForward = null;
		RechercheCourrierForm courrierForm = (RechercheCourrierForm) form;
		CriteresRechercheCourrierDto critereCourrierDto = new CriteresRechercheCourrierDto();
 
		critereCourrierDto = CourrierUtil.createCriteresCourrier(
				critereCourrierDto, courrierForm);
 
		HttpSession session = request.getSession(true);
 
		critereCourrierDto.setVersion(session.getAttribute("version") + "");
		CourrierService.getInstance().copierFichier(
				session.getAttribute("destinationQualif").toString(),
				session.getAttribute("sourceQualif").toString());
 
		//suppression des deux chemins de fichiers stockés dans la session plus
		// besoin d'eux
		session.removeAttribute("destinationQualif");
		session.removeAttribute("sourceQualif");
 
		critereCourrierDto.setAction(Constants.CRITERE_NOT_VERSION);
		CourrierService.getInstance().updateListeVersions(critereCourrierDto,
				true);
		actionForward = this.rechercheVersions(mapping, courrierForm, request,
				response);
		actionForward = mapping.findForward(Constants.SUCCESS_KEY);
		return actionForward;
 
	}
et le formulaire (extrait):
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
	<logic:present name="existQualif">
		<logic:equal name="existQualif" value="oui">	
 
			<!--fonction javascript executé si le fichier est déja publié en Qualif <=> 
				existence du fichier dans le repertoire Qualif -->	
			<script language="Javascript">
 
				if (confirm("<bean:message key="MSG-10001"/>")) {	
					document.rechercheCourrierForm.action= '<html:rewrite action="publierEnQualifBis"/>';		
					document.rechercheCourrierForm.submit();
				}
 
			</script>
 
		</logic:equal>
	</logic:present>
ca marche mais le chef ne veut pas que la delegation soit avec javascript

merci de me repondre c urgent