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

Hibernate Java Discussion :

imposer format date hibernate


Sujet :

Hibernate Java

  1. #1
    Débutant
    Inscrit en
    Septembre 2007
    Messages
    372
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 372
    Points : 86
    Points
    86
    Par défaut imposer format date hibernate
    Bonjour, je travaille avec hibernate, oracle, dans un formulaire de recherche j'ai mis un calendrier javascript qui permet de donner une date sous format :
    alors que sous oracle mes dates sont cette format : , j'ai utilisé criteria dans la recherche comme suit :
    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
    public List critere(Date ddc,Date dfc,Ressource rc,String lc){
        Session session=HibernateUtil.getSessionFactory().getCurrentSession();
    	 session.beginTransaction();
    Criteria criteria = session.createCriteria(Conge.class);
    if (ddc != null) {
    	criteria.add(Expression.gt("dateDebutConge",ddc));
    }
    if (dfc != null) {
    	criteria.add(Expression.lt("dateFinConge",dfc));
    }
    if (lc != null) {
    	criteria.add(Expression.eq("libelleConge",lc));
    }
    List results = criteria.list();
    return results;
    }
    lorsque j'ai vérifié les valeurs des dates transmises j'ai trouvé des valeurs étrange comme celle la : je sais pas d'ou l'erreur vous avez une idée ?

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Plusieurs choses sont a vérifier

    1) le type de champ utilisé dans la DB, quel est-il? (Pas une string j'espère)
    2) la valeur des dates passées dans ta fonction (s'agit-il d'une erreur de parsing de la Date fournie depuis javascript?)

  3. #3
    Débutant
    Inscrit en
    Septembre 2007
    Messages
    372
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 372
    Points : 86
    Points
    86
    Par défaut
    voila le fichier de mapping de ma classe, parce que je crée mes tables a partir de la et j'aimerais bien de le forcer a travers les fichier.hbm :

    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
    <?xml version="1.0"?>
    <!DOCTYPE hibernate-mapping PUBLIC
    	"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    	"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
    <hibernate-mapping package="ma.corporate.planning.metier">
     
      <class name="ma.corporate.planning.metier.Conge" table="GPL_CONGES">
      	<id name="idConge" column="ID_CONGE">
        	<generator class="increment"></generator>
      	</id>
    	  <property name="libelleConge" column="LIBELLE_CONGE"></property>
    	  <property name="dateDebutConge" column="DATEDEBUTCONGE"></property>
    	  <property name="dateFinConge" column="DATEFINCONGE"></property>
    	  <property name="active" column="ACTIVE"></property>
     
    	  <many-to-one name="rce" column="ID_RESSOURCE"></many-to-one>
     
      </class>
     
    </hibernate-mapping>
    sachant que datedebut et fin sont des dates.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    	private Long idConge;
    	private String libelleConge;
    	private Date dateDebutConge;
    	private Date dateFinConge;
    	private Boolean active  = true;
    	private Ressource rce;
    mon fichier javascript :
    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
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    // <!-- <![CDATA[
     
    // Project: Dynamic Date Selector (DtTvB) - 2006-03-16
    // Script featured on JavaScript Kit- http://www.javascriptkit.com
    // Code begin...
    // Set the initial date.
    var ds_i_date = new Date();
    ds_c_month = ds_i_date.getMonth() + 1;
    ds_c_year = ds_i_date.getFullYear();
     
    // Get Element By Id
    function ds_getel(id) {
    	return document.getElementById(id);
    }
     
    // Get the left and the top of the element.
    function ds_getleft(el) {
    	var tmp = el.offsetLeft+152;
    	el = el.offsetParent
    	while(el) {
    		tmp += el.offsetLeft;
    		el = el.offsetParent;
    	}
    	return tmp;
    }
    function ds_gettop(el) {
    	var tmp = el.offsetTop-21;
    	el = el.offsetParent
    	while(el) {
    		tmp += el.offsetTop;
    		el = el.offsetParent;
    	}
    	return tmp;
    }
     
    // Output Element
    var ds_oe = ds_getel('ds_calclass');
    // Container
    var ds_ce = ds_getel('ds_conclass');
     
    // Output Buffering
    var ds_ob = ''; 
    function ds_ob_clean() {
    	ds_ob = '';
    }
    function ds_ob_flush() {
    	ds_oe.innerHTML = ds_ob;
    	ds_ob_clean();
    }
    function ds_echo(t) {
    	ds_ob += t;
    }
     
    var ds_element; // Text Element...
     
    var ds_monthnames = [
    'Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin',
    'Juillet', 'Aout', 'Septembre', 'Octobre', 'Novembre', 'Décembre'
    ]; // You can translate it for your language.
     
    var ds_daynames = [
    'Dim', 'Lun', 'Mar', 'Me', 'Jeu', 'Ven', 'Sam'
    ]; // You can translate it for your language.
     
    // Calendar template
    function ds_template_main_above(t) {
    	return '<table width="10" cellpadding="3" cellspacing="1" class="ds_tbl">'
    	     + '<tr>'
    		 + '<td class="ds_head" style="cursor: pointer" onclick="ds_py();">&lt;&lt;</td>'
    		 + '<td class="ds_head" style="cursor: pointer" onclick="ds_pm();">&lt;</td>'
    		 + '<td class="ds_head" style="cursor: pointer" onclick="ds_hi();" colspan="3">[Fermer]</td>'
    		 + '<td class="ds_head" style="cursor: pointer" onclick="ds_nm();">&gt;</td>'
    		 + '<td class="ds_head" style="cursor: pointer" onclick="ds_ny();">&gt;&gt;</td>'
    		 + '</tr>'
    	     + '<tr>'
    		 + '<td colspan="7" class="ds_head">' + t + '</td>'
    		 + '</tr>'
    		 + '<tr>';
    }
     
    function ds_template_day_row(t) {
    	return '<td class="ds_subhead">' + t + '</td>';
    	// Define width in CSS, XHTML 1.0 Strict doesn't have width property for it.
    }
     
    function ds_template_new_week() {
    	return '</tr><tr>';
    }
     
    function ds_template_blank_cell(colspan) {
    	return '<td colspan="' + colspan + '"></td>'
    }
     
    function ds_template_day(d, m, y) {
    	return '<td class="ds_cell" onclick="ds_onclick(' + d + ',' + m + ',' + y + ')">' + d + '</td>';
    	// Define width the day row.
    }
     
    function ds_template_main_below() {
    	return '</tr>'
    	     + '</table>';
    }
     
    // This one draws calendar...
    function ds_draw_calendar(m, y) {
    	// First clean the output buffer.
    	ds_ob_clean();
    	// Here we go, do the header
    	ds_echo (ds_template_main_above(ds_monthnames[m - 1] + ' ' + y));
    	for (i = 0; i < 7; i ++) {
    		ds_echo (ds_template_day_row(ds_daynames[i]));
    	}
    	// Make a date object.
    	var ds_dc_date = new Date();
    	ds_dc_date.setMonth(m - 1);
    	ds_dc_date.setFullYear(y);
    	ds_dc_date.setDate(1);
    	if (m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12) {
    		days = 31;
    	} else if (m == 4 || m == 6 || m == 9 || m == 11) {
    		days = 30;
    	} else {
    		days = (y % 4 == 0) ? 29 : 28;
    	}
    	var first_day = ds_dc_date.getDay();
    	var first_loop = 1;
    	// Start the first week
    	ds_echo (ds_template_new_week());
    	// If sunday is not the first day of the month, make a blank cell...
    	if (first_day != 0) {
    		ds_echo (ds_template_blank_cell(first_day));
    	}
    	var j = first_day;
    	for (i = 0; i < days; i ++) {
    		// Today is sunday, make a new week.
    		// If this sunday is the first day of the month,
    		// we've made a new row for you already.
    		if (j == 0 && !first_loop) {
    			// New week!!
    			ds_echo (ds_template_new_week());
    		}
    		// Make a row of that day!
    		ds_echo (ds_template_day(i + 1, m, y));
    		// This is not first loop anymore...
    		first_loop = 0;
    		// What is the next day?
    		j ++;
    		j %= 7;
    	}
    	// Do the footer
    	ds_echo (ds_template_main_below());
    	// And let's display..
    	ds_ob_flush();
    	// Scroll it into view.
    	//ds_ce.scrollIntoView();
    }
     
    // A function to show the calendar.
    // When user click on the date, it will set the content of t.
    function ds_sh(t) {
    	// Set the element to set...
    	ds_element = t;
    	// Make a new date, and set the current month and year.
    	var ds_sh_date = new Date();
    	ds_c_month = ds_sh_date.getMonth() + 1;
    	ds_c_year = ds_sh_date.getFullYear();
    	// Draw the calendar
    	ds_draw_calendar(ds_c_month, ds_c_year);
    	// To change the position properly, we must show it first.
    	ds_ce.style.display = '';
    	// Move the calendar container!
    	the_left = ds_getleft(t);
    	the_top = ds_gettop(t) + t.offsetHeight;
    	ds_ce.style.left = the_left + 'px';
    	ds_ce.style.top = the_top + 'px';
    	// Scroll it into view.
    	//ds_ce.scrollIntoView();
    }
     
    // Hide the calendar.
    function ds_hi() {
    	ds_ce.style.display = 'none';
    }
     
    // Moves to the next month...
    function ds_nm() {
    	// Increase the current month.
    	ds_c_month ++;
    	// We have passed December, let's go to the next year.
    	// Increase the current year, and set the current month to January.
    	if (ds_c_month > 12) {
    		ds_c_month = 1; 
    		ds_c_year++;
    	}
    	// Redraw the calendar.
    	ds_draw_calendar(ds_c_month, ds_c_year);
    }
     
    // Moves to the previous month...
    function ds_pm() {
    	ds_c_month = ds_c_month - 1; // Can't use dash-dash here, it will make the page invalid.
    	// We have passed January, let's go back to the previous year.
    	// Decrease the current year, and set the current month to December.
    	if (ds_c_month < 1) {
    		ds_c_month = 12; 
    		ds_c_year = ds_c_year - 1; // Can't use dash-dash here, it will make the page invalid.
    	}
    	// Redraw the calendar.
    	ds_draw_calendar(ds_c_month, ds_c_year);
    }
     
    // Moves to the next year...
    function ds_ny() {
    	// Increase the current year.
    	ds_c_year++;
    	// Redraw the calendar.
    	ds_draw_calendar(ds_c_month, ds_c_year);
    }
     
    // Moves to the previous year...
    function ds_py() {
    	// Decrease the current year.
    	ds_c_year = ds_c_year - 1; // Can't use dash-dash here, it will make the page invalid.
    	// Redraw the calendar.
    	ds_draw_calendar(ds_c_month, ds_c_year);
    }
     
    // Format the date to output.
    function ds_format_date(d, m, y) {
    	// 2 digits month.
    	m2 = '00' + m;
    	m2 = m2.substr(m2.length - 2);
    	// 2 digits day.
    	d2 = '00' + d;
    	d2 = d2.substr(d2.length - 2);
    	// YYYY-MM-DD
    //	return y + '-' + m2 + '-' + d2;
    	return d2 + '-' + m2 + '-' + y;
    }
     
    // When the user clicks the day.
    function ds_onclick(d, m, y) {
    	// Hide the calendar.
    	ds_hi();
    	// Set the value of it, if we can.
    	if (typeof(ds_element.value) != 'undefined') {
    		ds_element.value = ds_format_date(d, m, y);
    	// Maybe we want to set the HTML in it.
    	} else if (typeof(ds_element.innerHTML) != 'undefined') {
    		ds_element.innerHTML = ds_format_date(d, m, y);
    	// I don't know how should we display it, just alert it to user.
    	} else {
    		alert (ds_format_date(d, m, y));
    	}
    }
     
    // And here is the end.
     
    // ]]> -->

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    as-tu vérifié, avec un System.out.println au début de ta méthode, que la Date est correct avant de la passer en critère hibernate.

  5. #5
    Débutant
    Inscrit en
    Septembre 2007
    Messages
    372
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 372
    Points : 86
    Points
    86
    Par défaut
    j'ai vérifié, avant de la passé a criteria il est erronée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Avant:0006-09-29Hibernate: 
        select
            this_.ID_CONGE as ID1_6_0_,
            this_.LIBELLE_CONGE as LIBELLE2_6_0_,
            this_.DATEDEBUTCONGE as DATEDEBU3_6_0_,
            this_.DATEFINCONGE as DATEFINC4_6_0_,
            this_.ACTIVE as ACTIVE6_0_,
            this_.ID_RESSOURCE as ID6_6_0_ 
        from
            GPL_CONGES this_ 
        where
            this_.DATEDEBUTCONGE>? 
            and this_.DATEFINCONGE<? 
            and this_.LIBELLE_CONGE=?
    comment puis je la forcer en date apparemment l'erreur viens du calendrier en javascript, car il donne la date en format string ????

    comment puis je la forcer au niveau criteria :
    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
    public List critere(Date ddc,Date dfc,Ressource rc,String lc){
        Session session=HibernateUtil.getSessionFactory().getCurrentSession();
    	 session.beginTransaction();
    	 System.out.print("Avant:"+ddc);
    Criteria criteria = session.createCriteria(Conge.class);
    if (ddc != null) {
    	criteria.add(Expression.gt("dateDebutConge",ddc));
    }
    if (dfc != null) {
    	criteria.add(Expression.lt("dateFinConge",dfc));
    }
    if (lc != null) {
    	criteria.add(Expression.eq("libelleConge",lc));
    }
    List results = criteria.list();
    return results;
    }

  6. #6
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Ton problème se situe au moment ou tu converti la string soumise par le browser (request.getParameter("....")) en Date, tu utilise un format différent de celui utilisé par le calendrier javascript, résultat ton code mélange les jour /mois / années. Rien à voir avec hibernate.

  7. #7
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    D'après ton script, la date retournée est au format DD-MM-YYYY.
    Donc, dans ton action, tu peux utiliser un SimpleDateFormat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");
    Date date = sdf.parse(laValeurString);
    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Débutant
    Inscrit en
    Septembre 2007
    Messages
    372
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 372
    Points : 86
    Points
    86
    Par défaut
    pardon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Ton problème se situe au moment ou tu converti la string soumise par le browser (request.getParameter("....")) en Date
    ou je fais ca ?

  9. #9
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Tu utilises struts ?
    Si oui, c'est fait automatiquement.
    Ton formulaire contient bien un champ String pour recevoir la date ?
    Dans l'action, tu la convertis en java.util.Date par le code que je t'ai montré et après tu le passes à Criteria. Pour le reste, ça me semble ok.

    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  10. #10
    Débutant
    Inscrit en
    Septembre 2007
    Messages
    372
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 372
    Points : 86
    Points
    86
    Par défaut
    effectivement je travaille avec struts, dans mon action j'ai mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    			SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");
    			Date dated = sdf.parse(cgf.getConge().getDateDebutConge());
    			Date datef =sdf.parse(cgf.getConge().getDateFinConge());
    			List critere = gcg.critere(dated, datef,"Congé payé");
    il me dit de retourner le getDateDebutConge en string ????

  11. #11
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Montre-nous le code de l'ActionForm.

    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  12. #12
    Débutant
    Inscrit en
    Septembre 2007
    Messages
    372
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 372
    Points : 86
    Points
    86
    Par défaut
    Bonjour,

    CongesForm :
    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
    69
    70
    71
    package presentation.str;
     
    import java.util.List;
    import java.util.Vector;
     
    import javax.servlet.http.HttpServletRequest;
     
    import ma.corporate.planning.metier.Conge;
    import ma.corporate.planning.metier.Ressource;
     
    import org.apache.struts.action.ActionError;
    import org.apache.struts.action.ActionErrors;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionMapping;
     
    public class CongesForm extends ActionForm  {
     
    	private String action = "";
    	private long idConge = 1;
    	private Conge conge = new Conge();
    	private List<Conge> conges = new Vector<Conge>();
    	private String selectedItem;
    	private String selectRessItem;
     
    	public String getSelectRessItem() {
    		return selectRessItem;
    	}
    	public void setSelectRessItem(String selectRessItem) {
    		this.selectRessItem = selectRessItem;
    	}
    	public String getAction() {
    		return action;
    	}
    	public void setAction(String action) {
    		this.action = action;
    	}
     
    	public long getIdConge() {
    		return idConge;
    	}
    	public void setIdConge(long idConge) {
    		this.idConge = idConge;
    	}
    	public Conge getConge() {
    		return conge;
    	}
    	public void setConge(Conge conge) {
    		this.conge = conge;
    	}
    	public List<Conge> getConges() {
    		return conges;
    	}
    	public void setConges(List<Conge> conges) {
    		this.conges = conges;
    	}
     
    	public ActionErrors validate(ActionMapping arg0, HttpServletRequest arg1) {
    		ActionErrors errors = new ActionErrors();
     
    		if ((getConge().getDateDebutConge().getTime() > getConge().getDateFinConge().getTime()))
    		errors.add("compdate", new ActionError("error.date.invalides"));
     
    		return errors;
    	}
    	public String getSelectedItem() {
    		return selectedItem;
    	}
    	public void setSelectedItem(String selectedItem) {
    		this.selectedItem = selectedItem;
    	}
    }
    CongesAction :
    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
    69
    70
    71
    72
    73
    74
    75
    76
    77
    package presentation.str;
     
    import java.sql.Date;
    import java.util.List;
    import java.util.Vector;
     
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
     
    import ma.corporate.planning.metier.Client;
    import ma.corporate.planning.metier.Conge;
    import ma.corporate.planning.metier.GestConge;
    import ma.corporate.planning.metier.GestRessource;
    import ma.corporate.planning.metier.GestService;
     
    import org.apache.struts.action.Action;
    import org.apache.struts.action.ActionError;
    import org.apache.struts.action.ActionErrors;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;
    import org.apache.struts.action.ActionMessage;
    import org.apache.struts.action.ActionMessages;
     
    public class CongesAction extends Action{
     
    	List ServiceItem;
    	List RessourceItem;
     
    	public ActionForward execute(ActionMapping map, ActionForm form,
    			HttpServletRequest request, HttpServletResponse response)
    			throws Exception {
     
    		CongesForm cgf = (CongesForm)form;
    		GestConge gcg= new GestConge();
    		GestService gsv = new GestService();
     
    		ServiceItem = gsv.getServiceItem();
    		request.setAttribute("servitem", ServiceItem);
     
    		RessourceItem = gcg.getRessConge();
    		request.setAttribute("ressitem", RessourceItem);
     
    		if(cgf.getAction().equals("")){
    			cgf.setConges(gcg.getAllCongeDate());
    		}
    		else if(cgf.getAction().equals("Chercher")){
    			return map.findForward("rechercheConge");	
    		}
    		else if(cgf.getAction().equals("Rechercher")){
    			List critere = gcg.critere(Date.valueOf("2007-01-1"), Date.valueOf("2008-06-01"),"Congé payé");
    			System.out.print(cgf.getConge().getDateDebutConge()+"---"+cgf.getConge().getDateFinConge());
    			cgf.setConges(critere);
    			return map.findForward("VueConge");
    		}
    		else if(cgf.getAction().equals("Editer")){
    		System.out.println("Editer");	
    		}
     
    		else if(cgf.getAction().equals("Supprimer")){
    		System.out.println("Supprimer");	
    		}
    		else if(cgf.getAction().equals("Valider")){
    		gcg.addConge(cgf.getConge().getLibelleConge(), cgf.getConge().getDateDebutConge(), cgf.getConge().getDateFinConge(),
    				cgf.getConge().getRce().getIdRessource());
    	    System.out.println("Valider");	
    		}	
    		else if(cgf.getAction().equals("Modifier")){	
    	   System.out.println("Modifier");	
    		}
    		else if(cgf.getAction().equals("Ajouter")){
    			cgf.setConge(new Conge());
    			return map.findForward("addConge");	
    		}
    		return map.findForward("VueConge");
    		}
    }

  13. #13
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Il faudrait aussi la page jsp, désolé...
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  14. #14
    Débutant
    Inscrit en
    Septembre 2007
    Messages
    372
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 372
    Points : 86
    Points
    86
    Par défaut
    La voilà :
    RechercheConge.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
    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
    <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>
    <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>
    <%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic"%>
    <%@ page language="java" import="java.util.*"%>
     
    <p>&nbsp;</p>
    <p>
    <span class="label">Recherche Cong&eacute; :</span>
    <html:form action="gestConge.do">
    <table border="1" width="55%" bordercolor="294C9E" align="center" class="label">
       <tr bgcolor="294C9E"><td colspan="2" class="retour">Recherche Cong&eacute; :</td></tr>
       <tr><td width="30%">Date début :</td><td><html:text property="conge.dateDebutConge" styleClass="cal" style="CURSOR: text" onclick="ds_sh(this);" readonly="true"></html:text><br/></td></tr>
       <tr><td width="30%">Date début :</td><td><html:text property="conge.dateFinConge" styleClass="cal" style="CURSOR: text" onclick="ds_sh(this);" readonly="true"></html:text><br/></td></tr>
     
    	<tr><td width="30%">Service :</td>
       <td>
       <html:select property="selectedItem">
       <html:options name="servitem"/>
       </html:select><br/>
       </td></tr>
     
     
       <tr><td width="30%">Ressource :</td>
       <td>
       <html:select property="selectRessItem">
       <html:option value="">-- Sélectionnez --</html:option>
       <html:options name="ressitem"/>
       </html:select><br/>
       </td></tr>
     
     
    	<tr>
       <td width="30%">Type :</td><td><html:select property="conge.libelleConge">
       <html:option value="1">Cong&eacute; pay&eacute; </html:option>
       <html:option value="2">Cong&eacute; materinit&eacute;</html:option>
       <html:option value="3">Arrêt maladie</html:option>
       </html:select><br/></td>
       </tr>
     
       <tr><td colspan="2">&nbsp;</td></tr>
       <tr><td class="label"><html:link href="gestConge.do?action=">Retour</html:link></td>
       <td align="right"><html:submit value="Rechercher" property="action" styleClass="recherche"></html:submit></td>
     
       </tr>
    </table>
     </html:form>
     <p>

  15. #15
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Aïe, tu utilises les bibliothèques basiques...
    Là, je ne vais pas pouvoir t'aider, personnellement, j'utilise la bibliothèque Struts-Layout, beaucoup plus aboutie.

    Si ça t'intéresse, va voir ici : http://struts.improve-technologies.com/

    Pour ce qui est des dates, il existe le tag <layout:date> (avec calendrier) et possibilité de formater directement.

    Sinon, peut-être qu'une autre personne pourra t'aider avec <html:text>

    Bonne continuation
    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  16. #16
    Débutant
    Inscrit en
    Septembre 2007
    Messages
    372
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 372
    Points : 86
    Points
    86
    Par défaut
    merci,
    y a t il une autre personne ?

  17. #17
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    a priori, tu fait pointer ton champ html javascript sur un String d'un form struts. Ensuite, dans le setter, tu te charge de faire le convertion en utilisant un SimpleDateFormat() qui correspond au format de ton javascript. Tu crée ainsi une propriété dérivée de type Date qui est utilisée par Hibernate par la suite:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    private String congeDebutString;
    private Date congeDebut;
    public String getCongeDebutString(){....}
    public String setCongeDebutString(String debut){
        this.congeDebutString = debug;
        congeDebut = ...... ; // convertir debut en Date
    }
    //....

  18. #18
    Débutant
    Inscrit en
    Septembre 2007
    Messages
    372
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 372
    Points : 86
    Points
    86
    Par défaut
    meme le getDateDebutString : je vais l'utiliser au niveau :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    		if ((getConge().getDateDebutString().getTime() > getConge().getDateFinConge().getTime()))
    		errors.add("compdate", new ActionError("error.date.invalides"));
     
    		return errors;
    	}
    comme date ?

Discussions similaires

  1. [XL-2003] imposer le format date fr
    Par Thierry2B dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 04/02/2011, 11h14
  2. Transformation en format Date
    Par Jean-Matt dans le forum Langage SQL
    Réponses: 6
    Dernier message: 16/11/2004, 16h20
  3. Tester un format date
    Par Tapioca dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 30/06/2004, 10h18
  4. interfaces Access et format Date
    Par say dans le forum InterBase
    Réponses: 21
    Dernier message: 10/05/2004, 17h24
  5. Format date
    Par cochet dans le forum Bases de données
    Réponses: 4
    Dernier message: 02/03/2004, 08h37

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