7 votes

Appeler une fonction Java dans JavaScript

Dites-moi si nous pouvons appeler java dans une fonction javascript ?

<HTML><HEAD></HEAD><BODY>
    <SCRIPT>
        function getScreenDimension() {
            <% System.out.println("Hiiiiiiiii"); %>
        }
    </SCRIPT>
    <FORM>
        <INPUT type="button" value="call Java method direct"  onClick = "getScreenDimension()">
    </FORM>
</BODY></HTML>

5voto

James Montagne Points 44517

Bien que la réponse "Non" soit techniquement correcte compte tenu de la formulation de la question. Vous pourriez vouloir vous documenter sur AJAX. C'est un moyen pour javascript de faire une demande à votre code backend (dans ce cas Java).

Javascript est côté client, ce qui signifie qu'il est exécuté par le navigateur de l'utilisateur. Java est exécuté sur votre serveur. Pour que le javascript côté client puisse interagir avec le backend Java, vous devez faire une demande au serveur.

2voto

Vivin Paliath Points 40975

Ma question est la suivante : "Qu'essayez-vous de faire et qu'attendez-vous de voir ?

Il faut savoir qu'il existe deux contextes d'exécution différents. Le premier est la JSP elle-même dont le code est exécuté par la JVM du côté serveur, et le second est le Javascript qui est exécuté par le navigateur. Donc, quand le code va dans le navigateur, vous verrez : Ainsi, le System.out.println causera Hiiiiiiiii pour être imprimé dans les journaux du serveur, mais vous ne verrez rien sur le navigateur. En fait, le code Javascript sur le navigateur ressemblera à ceci :

function getScreenDimension() {

}

Ce qui n'est pas un code Javascript valide. Le code dans la JSP est exécuté avant que le Javascript ne soit exécuté sur le navigateur. Ainsi, pour "exécuter" du code Java, vous devez faire une demande à votre serveur, soit en affichant le formulaire, soit avec un appel AJAX. Le code Java sera alors exécuté dans le servlet ou le contrôleur approprié.

UPDATE

Après avoir jeté un coup d'œil à votre code, il apparaît que vous voulez appeler directement une méthode Java. Cela n'est pas possible avec votre code actuel. Vous devriez peut-être vous documenter sur AJAX. Cela vous mettra sur la bonne voie.

2voto

Quentin Points 325526

JSP fonctionne sur le serveur. Il génère un document que le serveur envoie au navigateur. C'est la fin de l'implication de JSP dans le processus. Le navigateur analyse alors le document et exécute tout JS.

Vous puede inclure JSP dans un élément script, il suffit qu'il produise du JavaScript valide.

Vous ne peut pas n'ont pas de JSP qui s'exécute en réponse à JavaScript, sauf lorsque JavaScript fait en sorte que le navigateur émette une nouvelle requête HTTP (soit en paramétrant l'adresse de l'utilisateur, soit en l'ajoutant à l'adresse du navigateur). location.href , soumettre un formulaire, ajouter une image ou utiliser la fonction Ajax etc)

1voto

Amir Raminfar Points 17939

Je pense que vous ne comprenez pas ce qui se passe ici. Tout ce qui est au milieu de <% %> est exécuté lorsque la page est demandée pour la première fois. Tout ce qui est en javascript est exécuté lorsque le navigateur l'appelle. Ce que vous avez ne sera jamais se produire et il n'y a aucun moyen de le faire. Cependant, vous pouvez utiliser AJAX pour faire quelque chose comme mais c'est une autre question.

1voto

William Points 2094

Oui, vous le pouvez. Utilisez les expressions JSP <%= %> . Exemple :

<aui:script use="aui-datepicker">
    AUI().use('aui-datepicker', function(A) {
        new A.DatePickerSelect({
            calendar : {
                dates : [ '<%="1/1/1970" %>' ],
            }
        }).render('#myDatePicker');
    }); 
</aui:script>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X