AnsweredAssumed Answered

pb de passage de paramètre sous alfresco

Question asked by slipknotik on Aug 5, 2009
salut à tous;
j'ai créé un type personnalisé "contrat" avec des métadata personnalisé.et j'ai une table mysql contrat qui contient ces métadata.
mon but est quand j'importe un doc de type contrat , je dois saisir l'id du contrat (qui le numéro du contrat) pour importer les métadata de ma base de données pour remplir les propriétés du doc importé.(pour effectuer une requête sql paramétré selon le numéro du contrat) 
en ce qui concerne la connexion avec la BD, elle fonctionne parfaitement (j'ai réalisé des tests suivants des requêtes statics) 

mon problème est telque je dois passer le paramètre "num_contrat" lors de l'importation du doc,
j'ai développé un  managed-beanse , et j'ai ajouté à la page "add-content-dialog.jsp"  une formulaire jsf qui contient un champs texte et un bouton de validation pour passer la valeur tapé dans le champs texte à un attribut de mon managed-bean  comme suit:
<h:form>
<h:outputText value="  Num_Contrat: "/>
<h:inputText value="#{contrat.num_contrat}"/>
<h:commandButton value="valider" action="#{contrat.affiche}" immediate="true" />
</h:form>

voici le code de mon bean
package org.alfresco.bean;

import java.sql.Connection;
import java.sql.Date;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import javax.faces.component.html.HtmlInputText;
import javax.faces.context.FacesContext;

//import javax.faces.component.html.HtmlInputText;
//import javax.faces.context.FacesContext;

public class Contrat {

   private HtmlInputText numch=null;
   

   private String client;
   private String codes;
   private Connection connexion;
   private Date datesign;
   protected Statement instruction;
   private String num_contrat;
   private int num_projet;

   private String partenaire;
   protected ResultSet resultat;
   private String service;
   
   
   public Contrat() {
      

      try {

         Class.forName("com.mysql.jdbc.Driver");

         connexion = DriverManager.getConnection(
               "jdbc:mysql://localhost/testoffre", "root", "admin");

         instruction = connexion.createStatement();
      } catch (ClassNotFoundException ex) {
         System.err.println("Probleme de pilote");
      } catch (SQLException ex) {
         System.err.println("Base de donnees non trouvee ou requete incorrecte");
      }
   }
   public String action() {

      
      String v = "";
      int n;
      HtmlInputText monComponent = (HtmlInputText) FacesContext
            .getCurrentInstance().getViewRoot().findComponent("formm:numc");
      if (monComponent.getValue() == null) {
         System.out.println("nullll");
      } else

         v = monComponent.getValue().toString();
      if (v == null && v == "") {
         n = 12333;

         System.out.println("dddd::" + n);
      } else {
         n = Integer.parseInt(v);
      }
      System.out.println("dddd::" + n);
      return v;
   }

   public String affiche() {
      Contrat.numc = Integer.parseInt(this.getNum_contrat());
      System.out.println("nummmm=" + Contrat.numc);
      return "ee";
   }
   public String getClient() {
      return client;
   }

   public String getCodes() {
      return codes;
   }

   public Date getDatesign() {
      return datesign;
   }

   public String getNum_contrat() {
      return num_contrat;
   }

   public int getNum_projet() {
      return num_projet;
   }

   public String getPartenaire() {
      return partenaire;
   }

   public String getService() {
      return service;
   }

   public String Remplir() {
   
      int num_cont = this.getNum_contrat();
      
      
         try {
            resultat = instruction
                  .executeQuery("select * from contrat where Num_Contrat=\""
                        + num_cont + "\"");
            while (resultat.next()) {
               this.setCodes(resultat.getString("CodeSociete"));
               this.setClient(resultat.getString("client"));
               this.setService(resultat.getString("service"));
               this.setDatesign(resultat.getDate("dateSignature"));
               this.setNum_projet(resultat.getInt("Num_Projet"));
               this.setPartenaire(resultat.getNString("partenaire"));
               System.out.println(this.getNum_contrat());
            }

         } catch (SQLException e) {
            System.err.println("probleme de pilote");
         }
      }
      return "ok";
   }

   public void setClient(String client) {
      this.client = client;
   }

   public void setCodes(String codes) {
      this.codes = codes;
   }

   public void setDatesign(Date datesign) {
      this.datesign = datesign;
   }

   public void setNum_contrat(String num_contrat) {
      this.num_contrat = num_contrat;
      // System.out.println("ok"+this.getNum_contrat());
   }

   public void setNum_projet(int num_projet) {
      this.num_projet = num_projet;
   }

   public void setPartenaire(String partenaire) {
      this.partenaire = partenaire;
   }

   public void setService(String service) {
      this.service = service;
   }

   public void setNumch(HtmlInputText numch) {
      this.numch = numch;
   }

   public HtmlInputText getNumch() {
      return numch;
   }

}

mais elle ne fonctionne pas, poutant ça fonctionne en dehors de alfresco.
je me demande y a t'il d'autres configuration à faire sous alfresco?
pouvez vous m'aider svp?

Outcomes