JSNI es el mecanismo por el cual es posible invocar código javascript nativo (entre los comentarios /*- -*/) desde código java.
Ejemplo 1. Ventana javascript dentro de código java (gwt).
public static native void msg(String cad)/*-{
$wnd.alert(‘Tu dices: ’+cad);
}-*/;
Es necesario usar la palabra native y colocar las llaves dentro de comentarios para que el compilador java no lo considere un error.
//invoco el código javascript dentro del código java
public void onModuleLoad(){
msg(“Es un buen día”);
}
Ejemplo 2. Manejar los mensajes tipo consola (firebug):
//defino los métodos “logs”
public static native void info(Object obj)/*-{
console.log(obj);
}-*/;
public static native void debug(Object obj)/*-{
console.debug(obj);
}-*/;
public static native void warning(Object obj)/*-{
console.warn(obj);
}-*/;
public static native void error(Object obj)/*-{
console.error(obj);
}-*/;
Ahora invocarlos en código java
public void onModuleLoad(){
info(“iniciando aplicación web…”);
try{
debug(“se ha creado el objeto satisfactoriamente”);
warning(“esperando un error”);
}catch(Exception ex){
error(“error encontrado: ”+ex+” causa: ”+ex.getCause());
}
}
Para poder ver los mensajes es necesario activar firebug dentro de firefox o chrome. Esto puede ser una buena práctica de testing.
Ejemplo 3. Contenido html
public static native void contenido()/*-{
document.write(“<h1>GWT ejemplos</h1>”);
}-*/;
//invocar el método
public void onModuleLoad(){
contenido();
RootPanel.get().add(new Acceso.getVista());
}
No hay comentarios:
Publicar un comentario