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

Java EE Discussion :

Problème avec une classe


Sujet :

Java EE

  1. #1
    Futur Membre du Club
    Homme Profil pro
    en formation IT
    Inscrit en
    Octobre 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : en formation IT

    Informations forums :
    Inscription : Octobre 2014
    Messages : 7
    Points : 5
    Points
    5
    Par défaut Problème avec une classe
    bonjour à tous je suis débutant en java ee, je dois créer une calculatrice , mais j'ai un petit problème le programme ne rentre pas dans ma condition pouvez-vous m'aidez merci d'avance voici le code de la classe j'ai mis des commentaire ou ça bloque
    et l'autre classe qui l'appel ainsi que le fichier 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
    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
    package com.octets.beans;
     
    import javax.servlet.http.HttpServletRequest;
     
     
    public class Calcul {
    	private int nbrUn ;
    	private int nbrDeux;
    	private String operation;
    	private double result;
     
    	public String getOperation() {
    		return operation;
    	}
    	public void setOperation(HttpServletRequest request) {
    		this.operation = (String)request.getParameter("operation");
     
    	}
    	public int getNbrDeux() {
    		return nbrDeux;
    	}
    	public void setNbrDeux(HttpServletRequest request) {
    		if(request.getParameter("nbrDeux")  == "")
    			this.nbrDeux = 0;
    		else
    			this.nbrDeux = (int) Double.parseDouble( request.getParameter("nbrDeux"));
    	}
    	public int getNbrUn() {
    		return nbrUn;
    	}
    	public void setNbrUn(HttpServletRequest request) {
    		if(request.getParameter("nbrUn") == "")
    			this.nbrUn = 0;
    		else
    			this.nbrUn = (int) Double.parseDouble( request.getParameter("nbrUn"));
    	}
    	public double getResult() {
    		return result;
    	}
    	public void setResult(double result) {
    		this.result = result;
    	}
    	public double operationNombres(HttpServletRequest request)
    	{
    		System.out.println(this.operation);// ici on m'affiche bien "+"
    		if(request.getParameter("nbrUn") == "")
    			this.nbrUn = 0;
     
    		if(request.getParameter("nbrDeux")  == "")
    			this.nbrDeux = 0;
     
    		if ( this.operation == "+")// et ici on ne rentre pas dans la condition et si je met pas de condition fait bien le calcul
    		{	
    			this.result = this.nbrUn + this.nbrDeux;				
    		}else if ( this.operation == "-")
    		{		  
    			this.result = this.nbrUn - this.nbrDeux;				
    		}else if ( this.operation == "*")
    		{			  
    			this.result = this.nbrUn * this.nbrDeux;				
    		}else if ( this.operation == "/")
    		{	
    			if(request.getParameter("nbrDeux")  == "")
    				this.nbrDeux = 1;
    			this.result = this.nbrUn / this.nbrDeux;			
     
    		}
    		return this.result;
    	}
     
     
    	/*public double soustractionNombres(HttpServletRequest request)
    	{
    		if(request.getParameter("nbrUn") == "")
    			nbrUn = 0;
    		if(request.getParameter("nbrDeux")  == "")
    			nbrDeux = 0;
    		result = nbrUn * nbrDeux;
    		return result;
    	}*/
     
    	/*public double multiplicationNombres(HttpServletRequest request)
    	{
    		if(request.getParameter("nbrUn") == "")
    			nbrUn = 0;
    		if(request.getParameter("nbrDeux")  == "")
    			nbrDeux = 0;
    		result = nbrUn * nbrDeux;
    		return result;
    	}*/
    	/*public double divisionNombres(HttpServletRequest request)
    	{
    		if(request.getParameter("nbrUn") == "")
    			nbrUn = 1;
    		if(request.getParameter("nbrDeux")  == "")
    			nbrDeux = 1;
    		result = nbrUn / nbrDeux;
    		return result;
    	}*/
    }
    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
    package com.octets.servlets;
     
    import java.io.IOException;
     
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
     
    import com.octets.beans.Calcul;
     
     
    @WebServlet("/Calculatrice")
    public class Calculatrice extends HttpServlet {
    	private static final long serialVersionUID = 1L;
     
        public Calculatrice() {
            super();
            // TODO Auto-generated constructor stub
        }
     
     
    	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
     
    		this.getServletContext().getRequestDispatcher("/WEB-INF/calculatrice.jsp").forward(request, response);
    	}
     
     
    	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		/**/
    		Calcul calcul = new Calcul();
     
    		calcul.setNbrUn(request);
    		calcul.setNbrDeux(request);
    		calcul.setOperation(request);			
    		calcul.operationNombres(request);	   	
    		calcul.getResult();
    		request.setAttribute("calcul", calcul);
    		this.getServletContext().getRequestDispatcher("/WEB-INF/calculatrice.jsp").forward(request, response);
    	}
     
    }
    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
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Calculatrice</title>
    </head>
    <body>
     
    <p><c:out value="Résultat de l'opération  ${ calcul.nbrUn } ${ calcul.operation } ${ calcul.nbrDeux }  = ${ calcul.result }" /></p>
     
    <form method="post" action="calculatrice"> 
    <p>
    	<input type="text" name="nbrUn" id="nbrUn" />
    	<select name="operation" id="operation" >		
    			<option>+</option>
    			<option>-</option>
    			<option>*</option>
    			<option>/</option>		
    	</select>
    	<input type="text" name="nbrDeux" id="nbrDeux" /> 	
    	<input type="submit" />
    </p>
    </form>
    </body>
    </html>
    bien à vous et bonne journée

  2. #2
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    Javadoc http://docs.oracle.com/javaee/6/api/...a.lang.String)

    getParameter
    java.lang.String getParameter(java.lang.String name)
    Returns the value of a request parameter as a String, or *null* if the parameter does not exist.
    essaie de faire ton test comme ceci: if(request.getParameter("nbrDeux") == null)PS: c'est une mauvaise idée de lier ta calculette directement aux HttpServletRequest... comment tu feras si tu veux faire une version non-web, par exemple? tu sera mieux structuré et plus propre si c'est ta WebServlet qui s'occupe d'extraire les paramètres de la requête avant de les envoyer à la calculette, que d'imposer à la calculette de savoir comment est structurée la requête...
    "Le plug gros problème des citations trouvées sur internet, c'est qu'on ne peut jamais garantir leur authenticité"

    Confucius, 448 av. J-C

  3. #3
    Futur Membre du Club
    Homme Profil pro
    en formation IT
    Inscrit en
    Octobre 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : en formation IT

    Informations forums :
    Inscription : Octobre 2014
    Messages : 7
    Points : 5
    Points
    5
    Par défaut c'est un tuto en java ee
    merci pour les conseils , si j'ai employé le web pour la calculatrice c'est parce-que l'on l'a demandé , sinon j'en ai déjà fait dans d'autres langage, mais ici je débute.
    mon problème si vous avez bien lu le fichier n'est pas sur le "nbrUn" ou "nbrDeux" mais sur "operation" que quand je demande de l'affiché via "system.out.println" là je retouve bien opération passée mais une fois dans la condition "if" quand je compare il ne fait pas le calcul que si je déclare est différent de l'opération là j'ai le calcul qui est fait mais ceci n'est pas ce qui doit faire comme j'ai les 4 opération à faire.
    encore merci pour vos réponse et si vous avez une autre solution je suis preneur

  4. #4
    Futur Membre du Club
    Homme Profil pro
    en formation IT
    Inscrit en
    Octobre 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : en formation IT

    Informations forums :
    Inscription : Octobre 2014
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    problème résolu j'ai juste employé "equals()" au lieu du "==" et maintenant cela fonctionne
    encore merci pour vos réponse et bonne journée

  5. #5
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    Oui toujours utiliser equals quand on test des strings...

    Sinon, ma remarque est que ton application est mal découpée: une "Calculatrice" ne doit en aucun cas savoir qu'elle est utilisée via le web (traduction: dans la classe Calcul, tu ne dois pas importer javax.servlet.http.* ni utiliser aucune de ses classes. Calcul sert à faire "des trucs" avec des nombres, pas "des trucs" avec des HttpServletRequest)

    Sinon tu te retrouves à mélanger de la gestion web à l'intérieur des classes de traitement -> mauvaise découpe -> début des vraies emmerdes
    "Le plug gros problème des citations trouvées sur internet, c'est qu'on ne peut jamais garantir leur authenticité"

    Confucius, 448 av. J-C

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

Discussions similaires

  1. problème avec une classe générique
    Par bard123 dans le forum Langage
    Réponses: 4
    Dernier message: 27/06/2008, 12h09
  2. [POO] Problème avec une classe + requêtes sql
    Par mithrendil dans le forum Langage
    Réponses: 2
    Dernier message: 30/04/2007, 09h27
  3. Problème avec une classe générique
    Par Core8 dans le forum C++
    Réponses: 3
    Dernier message: 19/03/2007, 04h18
  4. Problème avec une classe ActionScript
    Par Patryk403 dans le forum Flash
    Réponses: 3
    Dernier message: 06/08/2006, 13h42
  5. Problème avec une classe... "without object"
    Par z980x dans le forum C++
    Réponses: 8
    Dernier message: 27/04/2006, 17h00

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