Ir al contenido

Cómo llamar a un método Java desde una función JavaScript en el navegador

·140 palabras·1 min
Alejandro Duarte
Autor
Alejandro Duarte
Alejandro Duarte es Ingeniero de Software, escritor, Ingeniero de Relaciones con Desarrolladores (DevRel) y consultor en desarrollo de software. Ha programado computadores desde mediados de los 90s. Comenzando con BASIC, Alejandro transitó a C, C++ y Java durante sus años académicos en la Universidad Nacional de Colombia. Se mudó primero al Reino Unido y luego a Finlandia para profundizar su participación en la industria del código abierto. Alejandro es reconocido en círculos de Java y MariaDB.

Nota: Traducido de la versión original en Inglés.

En este video demuestro cómo llamar a un método Java que se ejecuta en el servidor desde una función JavaScript que se ejecuta en el navegador web:

En resumen, necesitas una aplicación web Java con las dependencias de Vaadin (puedes crear rápidamente una aquí), un archivo de script en el directorio webapp/frontend/ y una clase Java con un método anotado con @ClientCallable que envía un Element a la función JavaScript. La función JavaScript puede usar el objeto $server en la instancia Element para llamar al método Java anotado.

Aquí está el código:

MainView.java:

@JavaScript("frontend://script.js")
@Route
public class MainView extends Div {
    public MainView() {
        getElement().executeJavaScript(
                "someJavaScriptFunction($0)", getElement());
    }

    @ClientCallable
    public someJavaMethod(String message) {
        System.out.println(message);
    }
}

script.js:

function someJavaScriptFunction(element) {
    element.$server.someJavaMethod("¡Hola servidor!");
}

Puedes leer el tutorial completo con cada paso aquí.

¿Te gustó este artículo? Puedo ayudar a tu equipo a implementar soluciones similares. Contáctame para saber más.

Relacionados

Carga diferida infinita

·280 palabras·2 mins
Un extracto del Capítulo 9 de mi libro sobre la implementación de carga diferida infinita en Vaadin.