probleme dans le chainage de deux actions
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:
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:
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:
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