/** * Copyright (C) 2008-2010, Squale Project - http://www.squale.org * * This file is part of Squale. * * Squale is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation, either version 3 of the * License, or any later version. * * Squale is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with Squale. If not, see <http://www.gnu.org/licenses/>. */ /* * Cr�� le 26 mars 04 * * Pour changer le mod�le de ce fichier g�n�r�, allez � : * Fen�tre>Pr�f�rences>Java>G�n�ration de code>Code et commentaires */ package org.squale.welcom.struts.bean; import java.sql.SQLException; import java.util.Locale; import javax.servlet.http.HttpServletRequest; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.commons.validator.GenericValidator; import org.apache.struts.Globals; import org.apache.struts.action.ActionError; import org.apache.struts.action.ActionErrors; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionMapping; import org.apache.struts.util.MessageResources; import org.squale.welcom.outils.Util; import org.squale.welcom.outils.jdbc.WJdbc; import org.squale.welcom.outils.jdbc.WMJdbc; import org.squale.welcom.struts.util.ServletUtils; import org.squale.welcom.struts.util.WConstants; /** * Class WForm */ public class JActionForm extends ActionForm { /** * */ private static final long serialVersionUID = -7142581724684808252L; /** logger */ private static Log log = LogFactory.getLog( JActionForm.class ); /** le userName */ private String userName = ""; /** jdbc */ private WJdbc jdbc = null; /** Le message ressource */ private MessageResources resources = null; /** l'actionError */ private ActionErrors errors = null; /** le WILogonBean */ private WILogonBean iLogonBean = null; /** la locale */ private Locale localeRequest = null; /** le resultAction */ private String resultAction = ""; /** la request ... j'ai le droit car la classe est instanci� plusieur fois */ private HttpServletRequest request; /** * @deprecated Utiliser wValidate(). * @param mapping l'actionMapping * @param pRequest la request * @param pJdbc le WJdbc */ public final void validate( final ActionMapping mapping, final HttpServletRequest pRequest, final WJdbc pJdbc ) { } /** * @see org.apache.struts.action.ActionForm#validate(org.apache.struts.action.ActionMapping, * javax.servlet.http.HttpServletRequest) */ public final ActionErrors validate( final ActionMapping mapping, final HttpServletRequest pRequest ) { // si on utilise le WRequestProcessor, c'est lui qui reconcatene date et heure if ( !mapping.getModuleConfig().getControllerConfig().getProcessorClass().equals( "org.squale.welcom.struts.action.WRequestProcessor" ) ) { // Search Date/Heure ServletUtils.welcomPersistanceUtil( this, request ); } // sauve la request ...*/ this.request = pRequest; // Initilise les erreurs; errors = new ActionErrors(); // remet � blanc le resultAction resultAction = ""; // Recupere la locale de la page localeRequest = (Locale) request.getSession().getAttribute( Globals.LOCALE_KEY ); // Recupere le user if ( ( request.getSession().getAttribute( WConstants.USER_KEY ) ) != null ) { iLogonBean = ( (WILogonBean) ( request.getSession().getAttribute( WConstants.USER_KEY ) ) ); if ( GenericValidator.isBlankOrNull( userName ) ) { userName = iLogonBean.getUserName(); } } // Recuperer le fichier des Bundle resources = (MessageResources) servlet.getServletContext().getAttribute( Globals.MESSAGES_KEY ); final String useMode = ( (String) servlet.getServletContext().getAttribute( WConstants.WELCOM_USE_MODE ) ); if ( Util.isEquals( useMode, WConstants.MODE_JDBC ) || Util.isEquals( useMode, WConstants.MODE_MJDBC ) ) { // Teste si l'on utilise l'avec jdbc embarqu� try { // Initialise la connection jdbc if ( Util.isEquals( useMode, WConstants.MODE_JDBC ) ) { jdbc = new WJdbc( getUserName() ); } else { // appel de la fonction pour connaitre quel JDBC a utiliser final String jdbcName = dispatchJdbc(); if ( jdbcName == null ) { dispatchJdbc( request ); } jdbc = new WMJdbc( getUserName(), jdbcName ); } // Appel de l'ancien validate pour compatibilit� final ActionErrors ae = validateOld( mapping, request, jdbc ); if ( ae != null ) { errors.add( ae ); } wValidate( mapping, request, jdbc ); } catch ( final SQLException ex ) { log.error( "2009-critical-Database--" + ex.getMessage() ); } finally { // Fermeture de tout ce qui a �t� ouvert en connection JDBC if ( jdbc != null ) { jdbc.close(); } jdbc = null; // Runtime.getRuntime().gc(); } } else { wValidate( mapping, request ); } if ( !GenericValidator.isBlankOrNull( resultAction ) ) { String message = resources.getMessage( localeRequest, "welcom.internal.error.resultaction.error" ) + "\\n\\n" + resultAction + "\\n" + resources.getMessage( localeRequest, "welcom.internal.error.resultaction.explanation" ); WResultAction.saveMessage( request, message ); } return errors; } /** * @deprecated Fonction permettant de definir le quel jdbc on desire utiliser en retournant le nom definit dans le * struts-config * @return : le nom du dataSource a Utiliser */ public String dispatchJdbc() { return null; } /** * Fonction permettant de definir le quel jdbc on desire utiliser en retournant le nom definit dans le struts-config * * @param pRequest : Requete Http * @return : le nom du dataSource a Utiliser */ public String dispatchJdbc( final HttpServletRequest pRequest ) { return null; } /** * @return le userName */ public String getUserName() { return userName; } /** * @return le MessageRessources */ protected MessageResources getMessageRessources() { return resources; } /** * Methode Validate de Welcom avec Support des addError() * * @param mapping l'actionMapping * @param pRequest la request */ public void wValidate( final ActionMapping mapping, final HttpServletRequest pRequest ) { // return null; } /** * Methode Validate de Welcom avec Support des addError() * * @param mapping l'actionMapping * @param pRequest la request * @param pJdbc le WJdbc * @throws SQLException exception */ public void wValidate( final ActionMapping mapping, final HttpServletRequest pRequest, final WJdbc pJdbc ) throws SQLException { // return null; } /** * Methode Validate de struts * * @deprecated * @param mapping l'actionMapping * @param pRequest la request * @param pJdbc le WJdbc * @return les erreurs * @throws SQLException exception */ public ActionErrors validateOld( final ActionMapping mapping, final HttpServletRequest pRequest, final WJdbc pJdbc ) throws SQLException { return null; } /** * @return la locale */ protected Locale getLocale() { return localeRequest; } /** * @return le iLogonBean */ protected WILogonBean getWILogonBean() { return iLogonBean; } /** * @return le messageRessource */ protected MessageResources getResources() { return resources; } /** * @return les erreurs */ protected ActionErrors getErrors() { return errors; } /** * @deprecated * @return le jdbc */ protected WJdbc getJdbc() { return jdbc; } /** * @param pErrors les erreurs */ protected void setErrors( final ActionErrors pErrors ) { errors = pErrors; } /** * setting du resultAction * * @param pResultAction le resultAction */ public void setResultAction( final String pResultAction ) { WResultAction.saveMessage( request, pResultAction ); } /** * ajout d'une erreur lors de la validation des attributs sp�cifiques ... * * @param property la property de l'attribut * @param actionError l'erreur message � afficher dans la popup */ public void addError( final String property, final ActionError actionError ) { addError( property, actionError.getKey(), actionError.getValues() ); } /** * ajout d'une erreur lors de la validation des attributs sp�cifiques ... * * @param property la property de l'attribut * @param actionErrorKey la key de l'erreur � afficher dans la popup */ public void addError( final String property, final String actionErrorKey ) { addError( property, actionErrorKey, (Object[]) null ); } /** * ajout d'une erreur lors de la validation des attributs sp�cifiques ... * * @param property la property de l'attribut * @param actionErrorKey le message � afficher dans la popup * @param arg0 parametre {0} */ public void addError( final String property, final String actionErrorKey, final String arg0 ) { final Object o[] = new Object[1]; o[0] = arg0; addError( property, actionErrorKey, o ); } /** * ajout d'une erreur lors de la validation des attributs sp�cifiques ... * * @param property la property de l'attribut * @param actionErrorKey le message � afficher dans la popup * @param arg0 parametre {0} * @param arg1 parametre {1} */ public void addError( final String property, final String actionErrorKey, final String arg0, final String arg1 ) { final Object o[] = new Object[2]; o[0] = arg0; o[1] = arg1; addError( property, actionErrorKey, o ); } /** * ajout d'une erreur lors de la validation des attributs sp�cifiques ... * * @param property la property de l'attribut * @param actionErrorKey le message � afficher dans la popup * @param arg0 parametre {0} * @param arg1 parametre {1} * @param arg2 parametre {2} */ public void addError( final String property, final String actionErrorKey, final String arg0, final String arg1, final String arg2 ) { final Object o[] = { arg0, arg1, arg2 }; addError( property, actionErrorKey, o ); } /** * ajout d'une erreur lors de la validation des attributs sp�cifiques ... * * @param property la property de l'attribut * @param actionErrorKey le message � afficher dans la popup * @param arg0 parametre {0} * @param arg1 parametre {1} * @param arg2 parametre {2} * @param arg3 parametre {3} */ public void addError( final String property, final String actionErrorKey, final String arg0, final String arg1, final String arg2, final String arg3 ) { final Object o[] = { arg0, arg1, arg2, arg3 }; addError( property, actionErrorKey, o ); } /** * ajout d'une erreur lors de la validation des attributs sp�cifiques ... * * @param property la property de l'attribut * @param actionErrorKey le message � afficher dans la popup * @param arg0 parametre {0} * @param arg1 parametre {1} * @param arg2 parametre {2} * @param arg3 parametre {3} * @param arg4 parametre {4} */ public void addError( final String property, final String actionErrorKey, final String arg0, final String arg1, final String arg2, final String arg3, final String arg4 ) { final Object o[] = { arg0, arg1, arg2, arg3, arg4 }; addError( property, actionErrorKey, o ); } /** * ajout d'une erreur lors de la validation des attributs sp�cifiques ... * * @param property la property de l'attribut * @param actionErrorKey le message � afficher dans la popup * @param valuesArg le tableau remplacant les parametres */ public void addError( final String property, final String actionErrorKey, final Object valuesArg[] ) { errors.add( property, new ActionError( "welcom.internal.error.info" ) ); String msg = resources.getMessage( localeRequest, actionErrorKey, valuesArg ); if ( GenericValidator.isBlankOrNull( msg ) ) { msg = actionErrorKey; } addResultAction( msg + "\\n" ); } /** * adding du resultAction * * @param str la chaine � ajouter */ public void addResultAction( final String str ) { if ( resultAction == null ) { resultAction = " - " + str; } else { resultAction += ( " - " + str ); } } }