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

avec Java Discussion :

Passer une variable JSTL à une classe Java


Sujet :

avec Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 200
    Points : 73
    Points
    73
    Par défaut Passer une variable JSTL à une classe Java
    Bonjour,

    j'aimerais passer la valeur d'une variable a une class java. Avez vous une suggestion?
    voici mon bout de code:
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
                        <% GetYearsMonthsDays ymd2 = new GetYearsMonthsDays(); %>
                        <%! String dateStart = ""; %> 
     
                        <c:forEach var="row" items="${employees.rows}">
     
                            <tr bgcolor="<%= ligne++ % 2 == 0 ? "#ffffff" : "#efffe5" %>" > 
                                <td ><b><%=counter++ %></b> </td> 
                                <td > <b>${row.EmployeeID}</b> </td>  
                                <td align="left"> <b>${row.FirstName}, ${row.LastName}</b> </td>  
                                <td align="left"> <b><fmt:formatDate value="${row.StartDate}" pattern="dd MMM yy"/></b> </td>  
                            <c:set var="start_date" value="${row.StartDate}" scope="page" />
     
                            <%= ymd2.YearsMonthsDays(  "01/10/2003") %>
    donc au lieu de passer une date hard codé, j'aimerai passer le contenu de la variable
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    <c:set var="start_date" value="${row.StartDate}" scope="page" />
    merci pour votre precieux aide.

  2. #2
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Quel rapport avec le Javascript ?
    One Web to rule them all

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 200
    Points : 73
    Points
    73
    Par défaut
    Bonjour sylvain,

    J'ai toujours pensé que le code suivant est partie intergrante du javascript...

    mon problème c'est quand je passe le paramètre a ma class, je n'arrive pas a recuperer la date qui vient de la boucle.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <% GetYearsMonthsDays ymd2 = new GetYearsMonthsDays(); %>
    <%! String dateStart = ""; %>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%= ymd2.YearsMonthsDays(  "01/10/2003") %>

  4. #4
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Tu dois confondre Java et Javascript. Or ça n'a rien à voir, l'un est exécuté côté serveur, l'autre côté client.
    One Web to rule them all

  5. #5
    Membre émérite
    Avatar de Kaamo
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    1 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 165
    Points : 2 778
    Points
    2 778
    Par défaut
    C'est plutôt un problème qui devrait être dans le forum Java > Servlets/JSP.

    Sinon, essaie ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <c:set var="start_date" value="${row.StartDate}" scope="page" />
     
    <%
    date startDate = ((Date) page.getAttribute("start_date"));
    %>
    En gros pour récupérer : <scope>.getAttribute(<var>)

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 200
    Points : 73
    Points
    73
    Par défaut
    Salut kaamo,

    Oui, j'ai trouvé ça dans le forum, maintenant ça me donne une erreur plus significative.
    PWC6197: An error occurred at line: 171 in the jsp file: /employee/managePtoVacation.jsp
    PWC6199: Generated servlet error:
    cannot find symbol
    symbol: method getAttribute(java.lang.String)
    location: variable page of type java.lang.Object

    une idée?

  7. #7
    Membre émérite
    Avatar de Kaamo
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    1 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 165
    Points : 2 778
    Points
    2 778
    Par défaut
    J'avais copié/collé un exemple. C'est bien sûr à adapter à ton cas. (tu récupères une date, donc il faut "caster" en date.)

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 200
    Points : 73
    Points
    73
    Par défaut
    Merci kaamo, je me suis inspiré de ton exemple.

    voila pour les personnes qui ont le même problème que moi qui consiste a appeler a partir d'une page web, une classe java paramètrée (date, année/mois/jour) pour retourner le nombre d'années, de mois et de jours qu'il y a entre la date passée en paramètre et la date du jour.

    Bout de code de la page:
    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
     
     <% GetYearsMonthsDays ymd = new GetYearsMonthsDays(); %>                
                        <%! java.util.Date dateStart = null ; %> 
                        <%request.getSession();%>
     
                        <c:forEach var="row" items="${employees.rows}">
     
                            <tr bgcolor="<%= ligne++ % 2 == 0 ? "#ffffff" : "#efffe5" %>" > 
                                <td ><b><%=counter++ %></b> </td> 
                                <td > <b>${row.EmployeeID}</b> </td>  
                                <td align="left"> <b>${row.FirstName}, ${row.LastName}</b> </td>  
                                <td align="left"> <b><fmt:formatDate value="${row.StartDate}" pattern="dd MMM yyyy"/></b> </td>  
                            <c:set var="start_date" value="${row.StartDate}" scope="session" />
     
                            <%  dateStart = (java.util.Date) session.getAttribute("start_date"); %>                     
     
                            <td ><b> <%= ymd.YearsMonthsDays(dateStart, "years") %>   </b> </td>
                            <td ><b> <%= ymd.YearsMonthsDays(dateStart, "months") %>   </b> </td>        
                            <td ><b> <%= ymd.YearsMonthsDays(dateStart, "days") %>   </b> </td>
                            <td ><b>pto </b> </td>
                            <td ><b>vac </b> </td>
                            <td align="left"><b>act</b> </td>
     
                            </tr>                               
                        </c:forEach>
    Class java:
    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
     
    package DBconnect;
     
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Date;
    import javax.mail.Session;
    import javax.naming.Context;
    import javax.naming.InitialContext;
    import javax.naming.NamingException;
     
    /**
     *
     * @author
     */
     
    public class GetYearsMonthsDays {
     
        public String YearsMonthsDays(Date start_date, String yearMontDay) {
     
            SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
     
            Date todaysDate = new Date();
            String systemDate = sdf.format(todaysDate);
            try {
                todaysDate = sdf.parse(systemDate);
            } catch (Exception ex) {
                System.out.println("Parse todays date ---> : " + ex);
            }
     
            Date startDate = new Date();
            startDate = start_date;
     
            Calendar c1 = Calendar.getInstance();
            Calendar c2 = Calendar.getInstance();
     
            c1.setTime(startDate);
            c2.setTime(todaysDate);
     
            int year = 0;
            int month = 0;
            int days = 0;
            boolean doneMonth = false;
            boolean doneYears = false;
            while (c1.before(c2)) {
     
                if (!doneYears) {
                    c1.add(Calendar.YEAR, 1);
                    year++;
                }
                if (c1.after(c2) || doneYears) {
                    if (!doneYears) {
                        doneYears = true;
                        year--;
                        c1.add(Calendar.YEAR, -1);
                    }
                    if (!doneMonth) {
                        c1.add(Calendar.MONTH, 1);
                        month++;
                    }
                    if (c1.after(c2) || doneMonth) {
                        if (!doneMonth) {
                            doneMonth = true;
                            month--;
                            c1.add(Calendar.MONTH, -1);
                        }
     
                        c1.add(Calendar.DATE, 1);
                        days++;
                        if (c1.after(c2)) {
                            days--;
                        }
                        // this will not be executed
                        if (days == 31 || month == 12) {
                            break;
                        }
                    }
                }
     
            }
     
            //System.out.println(year + " years, " + month + " months, " + days + " days");
            String period = null;
            if ("years".equals(yearMontDay)) {
                period = Integer.toString(year);
            }
     
            if ("months".equals(yearMontDay)) {
                period = Integer.toString(month);
            }
            if ("days".equals(yearMontDay)) {
                period = Integer.toString(days);
            }
     
            return period;
     
        }
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. ajouter une variable d'un classe java à une bdd
    Par cisco.nat dans le forum Général Java
    Réponses: 13
    Dernier message: 07/06/2013, 16h55
  2. Réponses: 1
    Dernier message: 22/06/2007, 15h40
  3. Appliquer une methode a une variable d une classe ?
    Par Slumpy dans le forum VB.NET
    Réponses: 18
    Dernier message: 07/06/2007, 17h17
  4. Réponses: 6
    Dernier message: 20/04/2007, 15h24
  5. faire passer une variable d'une fct js à une page php
    Par harlock59 dans le forum Langage
    Réponses: 1
    Dernier message: 25/11/2005, 14h41

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