IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Struts 1 Java Discussion :

Problème de date


Sujet :

Struts 1 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Novembre 2005
    Messages
    163
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 163
    Par défaut Problème de date
    Bonjour,

    je fais suite à la discussion de ce post :

    http://www.developpez.net/forums/sho...=163667&page=2

    Après avoir fait tt les modifications conseillé je tombe sur une erreur de format dans les log :

    javax.servlet.jsp.JspException: ServletException in 'addAlbum.jsp': /addAlbum.jsp(27,9) L'attribut format est incorrect pour le tag date d'après la TLD indiquée


    J'ai pourtant indiqué le format souhaité dans ma JSP :

    <td><darkwark:date property="dateAlbum" format="dd-MM-yyyy" /></td>
    le format souhaité dans ma classe DateTag pour afficher correctement mes infos :

    import java.text.DateFormat;
    import java.text.SimpleDateFormat;
    import java.util.Date;

    import javax.servlet.jsp.JspException;

    import org.apache.struts.taglib.html.TextTag;

    public class DateTag extends TextTag {
    private String format = "dd-MM-yyyy";
    private DateFormat formater = new SimpleDateFormat(format);


    protected String formatValue(Object object) throws JspException {
    if( object != null && object instanceof Date ) {
    return formater.format((Date)object);
    } else {
    return super.formatValue(object);
    }
    }

    public String getFormat() {
    return format;
    }

    public void setFormat(String format) {
    this.format = format;
    formater = new SimpleDateFormat(format);
    }
    }
    Et dans mon converter le format que je souhaite avoir pour insérer ma date dans ma BDD :

    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Date;

    import org.apache.commons.beanutils.Converter;
    import org.apache.commons.logging.Log;
    import org.apache.commons.logging.LogFactory;


    public class DateConverter implements Converter {

    private static final Log logger = LogFactory.getLog(DateConverter.class);

    private Object defaultValue = null;

    public DateConverter() {
    this.defaultValue = null;
    }

    public DateConverter(Object defaultValue) {
    this.defaultValue = defaultValue;
    }

    public Object convert(Class type, Object value) {

    Date laDate = new Date();

    if (value == null) {
    return (defaultValue);
    }

    if (value instanceof Date) {
    return (value);
    }

    try {
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    laDate = sdf.parse(value.toString());
    return laDate;

    } catch (ParseException e) {
    logger.debug("Unable to convert " + value + " into Date format.");
    return defaultValue;
    }
    }
    }
    Pourrais je avoir des informations supplémentaires ?

  2. #2
    Membre éprouvé
    Inscrit en
    Avril 2004
    Messages
    170
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 170
    Par défaut
    Sans avoir regardé en détail, c'est normal que dans ton converter tu aies :
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    alors que dans le reste de ton code tu as :
    dd-MM-yyyy
    comme format de date ?

  3. #3
    Membre confirmé
    Inscrit en
    Novembre 2005
    Messages
    163
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 163
    Par défaut
    Attention tu confond le format de ma classe DateTag qui me sert à manipuler les dates dans mon IHM et le format de mon converter qui va etre utiliser pour insérer la date au format de ma BDD. Si je n'ai pas cimpris qq chose, pourrais je avoir une explication ?

  4. #4
    Membre émérite

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2002
    Messages : 652
    Par défaut
    le converter et le tag doivent utiliser le même format !
    l'un pour passer de Date à String et l'autre de String à Date

  5. #5
    Membre confirmé
    Inscrit en
    Novembre 2005
    Messages
    163
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 163
    Par défaut
    Je ne comprend pas ta reponse ... Comment le converter peut avoir un format pour passer de Date à String et un autre format de String à Date et etre le meme que dans ma jsp ( qui n'a qu'un seul format )


  6. #6
    Membre confirmé
    Inscrit en
    Novembre 2005
    Messages
    163
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 163
    Par défaut
    Bon j'ai mis tt au meme format mais g tjs un problème :

    Voici mon dateConverter.java :


    public class DateConverter implements Converter {

    private static final Log logger = LogFactory.getLog(DateConverter.class);

    private Object defaultValue = null;

    public DateConverter() {
    this.defaultValue = null;
    }

    public DateConverter(Object defaultValue) {
    this.defaultValue = defaultValue;
    }

    public Object convert(Class type, Object value) {

    Date laDate = new Date();

    if (value == null) {
    return (defaultValue);
    }

    if (value instanceof Date) {
    return (value);
    }

    try {
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    laDate = sdf.parse(value.toString());
    return laDate;

    } catch (ParseException e) {
    logger.debug("Unable to convert " + value + " into Date format.");
    return defaultValue;
    }
    }
    }
    Mon DateTag.java :

    public class DateTag extends TextTag {
    private String format = "yyyy-MM-dd";
    private DateFormat formater = new SimpleDateFormat(format);


    protected String formatValue(Object object) throws JspException {
    if( object != null && object instanceof Date ) {
    return formater.format((Date)object);
    } else {
    return super.formatValue(object);
    }
    }

    public String getFormat() {
    return format;
    }

    public void setFormat(String format) {
    this.format = format;
    formater = new SimpleDateFormat(format);
    }
    }
    Et dans mes jsp j'ai :

    <td><darkwark:date property="dateAlbum" format="yyyy-MM-dd" /></td>
    Ce format est le même que celui de ma base de données (format americain).

    Le soucis est dans le post qui suit

    DarkWark

Discussions similaires

  1. [XL-2007] Probl formule avec des intervales de dates
    Par alexandrek dans le forum Excel
    Réponses: 0
    Dernier message: 09/02/2011, 11h56
  2. probl champ date
    Par bambino13 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 10/07/2009, 14h28
  3. Probl insertion date dans db mysql(odbc)
    Par MetalGearBe dans le forum ASP.NET
    Réponses: 2
    Dernier message: 16/03/2007, 16h54
  4. proble de recuperation de date
    Par mikaloop dans le forum Access
    Réponses: 8
    Dernier message: 24/02/2006, 23h01
  5. Réponses: 3
    Dernier message: 19/04/2002, 00h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo