Utiliser Java depuis JavaScript

Résolu
Messages postés
31
Date d'inscription
samedi 29 mars 2003
Statut
Membre
Dernière intervention
24 juin 2008
-
Messages postés
31
Date d'inscription
samedi 29 mars 2003
Statut
Membre
Dernière intervention
24 juin 2008
-
Salut,

Je travaille sur un portail SAP.
Les technologies que j'utilise sont Java et JavaScript. Je vais essayer de bien synthétiser le problème.
Coté Java, j'ai une page JSP associée à une classe behind qui gère les évènements de la page (ex: click sur le bouton modifier => méthode onModifier(Event e), click sur le bouton annuler => méthode onAnnuler(Event e).
Coté JavaScript, je m'abonne à des évènements du portail en utilisant un service du portail (Pour info EPCM.subscribeEvent(...) ).
L'envoi et l'écoute des évènements du portail est fait avec JavaScript.
Quand ma page JSP reçoit un certain évènement (généré par une autre page JSP), j'appelle une fonction JavaScript :
onEventClickSurLien(){...}

Et c'est là qu'on arrive à mon problème :
Depuis cette fonction (JavaScript), je voudrais
- ajouter à ma session un bean (donc Java depuis JavaScript),
- appeler une méthode de ma classe behind (Java depuis JavaScript), le but étant de rafraîchir la page. Au cours de ce rafraîchissement je vais utiliser le bean que j'ai ajouté à la session. 

En résumé, mon problème est : comment intéragir avec Java depuis la fonction JavaScript (sachant que la page est déjà chargée dans le navigateur).
Si vous avez des pistes à me suggérer ...

Pour info, je poste aussi ce message sur le forum Java.

Merci d'avance

1 réponse

Messages postés
31
Date d'inscription
samedi 29 mars 2003
Statut
Membre
Dernière intervention
24 juin 2008

Ok c'est fini. Alors en gros voilà comment j'ai fait :
Ajout d'un bouton et d'un textbox dans un div invisible.
Récupération de leurs ID HTML (parce qu'avec SAP on utilise des balises HTMLB. L'ID HTML change à chaque rafraichissement de la page).

<hbj:inputField id="idChamp" disabled="true" value="">
   <% 
   String idHtmlb = myContext.getParamIdForComponent(idChamp);
   idChamp.setJsObjectNeeded(true);
   %>
   <script language="Javascript">
      //Récupération de la variable Java dans une variable JavaScript déclarée au début de la page
      idtextfield = "<%=idHtmlb%>";
   </script>
 </hbj:inputField>

Même principe pour le bouton

<hbj:button id="btnRecharger" text="Recharger" disabled="false" design="standard" width="30" onClick="recharger">

Dans ma fonction JavaScript, exécutée à la réception d'un évènement portail :
var myTxtbox = document.getElementById(idtextfield);
myTxtbox.value = "valeur"
var myBtn = document.getElementById(idBtn);
myBtn.click();