[jsp] passage de fonction

passage de fonction [jsp] - Java - Programmation

Marsh Posté le 01-03-2006 à 10:38:37    

bonjour
 
j'ai un soucis en jsp sur l'utilisation des fonctions:
 
 
voici la fonction en question et le debut du code en question:
 <%
  Connection conn;
  ResultSet  resultSet;
   
  try {
    // Connexion a la base
    conn = DriverManager.getConnection(url, login, password);
     
    Statement statement = conn.createStatement();
 
    resultSet = statement.executeQuery(requete);
     
  } catch (SQLException e) {
    System.out.println("Une erreure est apparue." );
    System.out.println(e.toString());
 
    throw new UnavailableException(this, "Impossible de se connecter a la base." );
  }
 
   
%>
<%!
 public String executeMAJ(String requete){
   
   try{
  Statement ss = conn.createStatement();
    resultSet r = ss.executeQuery(requete);
     
    ss.close();
    r.close();
   
 }catch(SQLException e) {
     System.out.println("mise a jour non effective" );
    }
   
   return requete;
  }
%>
<html>
<head></head>
<body>
 
 
 
si je ne rajoute pas le '!' du <%!%> pour la definition de la fonction je me fait jeter
si je le met, conn et resultSet ne sont plus reconnus!
 
comment faire pour que cela fonctionne correctement?
merci

Reply

Marsh Posté le 01-03-2006 à 10:38:37   

Reply

Marsh Posté le 01-03-2006 à 13:41:19    

Quand tu utilises <%! %>, tu définis des attributs ou des méthodes de la classe générée à partir de ta JSP.
 
La classe générée hérite de HttpServlet et quand tu utilises <% %>, tu ajoutes du code à la méthode service().
 
Tel que c'est écrit pour l'instant, les variables conn et resultSet sont des variables locales à la méthode service() donc c'est normal qu'elles ne soient pas visibles dans la méthode executeMAJ.
Ce qu'il faut faire c'est passer ces valeurs en parametres de executeMAJ.

Reply

Marsh Posté le 01-03-2006 à 14:03:53    

merci bidem c'etait exactement le probleme, maintenant cela fonctionne parfaitement :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed