Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    [JavaScript] Richiamare classe e metodi Java

    Ciao a tutti,
    avrei bisogno di sapere se è possibile, e come si può realizzare, una funzione JavaScript che riesca a richiamare un metodo Java di una classe (che nel mio caso è anche un Singleton).
    Grazie 1000.
    Daniele.

  2. #2
    beh, devi creare un applet che abbia dei metodi pubblici, a quel punto li puoi chiamare come funzioni dell'istanza dell'applet stessa.

    http://java.sun.com/docs/books/tutor...avaScript.html
    I DON'T Double Click!

  3. #3
    Grazie, ma invece non usando un'Applet? Non si può fare?

  4. #4
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Se nella pagina non esiste un oggetto (applet) che contenga quei metodi... ovviamente no.

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  5. #5
    Grazie, ho provato ad adattare questo codice che mi hai passato, con le mie esigenze.
    Faccio una breve panoramica. Ho una classe DaemonSingleton, all'interno del package beans.
    Questa è la porzione di codice in cui io ho messo il codice che mi hai passato

    <script src="root/javascript/deployJava.js"/>
    <script>

    var attributes = { id:'demone', code:'it.tlsoft.qualita.beans.DaemonSingleton', width:1, height:1} ;
    var parameters = {jnlp_href: 'math-applet.jnlp'} ;
    deployJava.runApplet(attributes, null, null);
    </script>
    <SCRIPT language="JavaScript">
    function controllaAsync(nomePagina){
    var aggiorna = 0;
    var nomeDemone2 = demone.getNomeDemone();
    var nomeDemone = it.tlsoft.qualita.beans.DaemonSingleton.getNomeDem one();
    alert(nomePagina);
    alert(nomeDemone);

    }
    </SCRIPT>
    <body onFocus="controllaAsync('lista campagne')" bgcolor="#FFFFFF" link="#FFFFFF" vlink="#FFFFF...

    La pagina si carica, ma mi da l'errore JavaScript ('demone' non è definito);
    Qui ho dovuto scrivere così, perchè utilizzando la VPN, non riesco ad uscire su Internet e quindi me lo sono scaricato dal sito e ho fatto un file apposito e l'ho inserito nel percorso definito da src. <script src="root/javascript/deployJava.js"/>

    Cosa ho sbagliato? Come si può fare?
    Grazie ancora...

  6. #6
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Ma "demone" cosa dovrebbe essere? l'ID dell'applet? un div nella pagina che riceve gli esiti?

    Senza conoscere lo script incluso non e' possibile sapere per cosa viene usato il parametro.

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  7. #7
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

    <xsl:import href="xsl/top.xsl"/>
    <xsl:import href="xsl/bottom.xsl"/>
    <xsl:import href="xsl/templatelib.xsl"/>

    <xslutput method="html" indent="yes"/>

    <xsl:template match="/">
    <html>
    <head>
    <title>Lista campagne</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></meta>
    </head>
    <script src="root/javascript/deployJava.js"/>
    <script>

    var attributes = { id:'demone', code:'it.tlsoft.qualita.beans.DaemonSingleton', width:1, height:1} ;
    var parameters = {jnlp_href: 'math-applet.jnlp'} ;
    deployJava.runApplet(attributes, null, null);
    </script>
    <SCRIPT language="JavaScript">
    function controllaAsync(nomePagina){
    var aggiorna = 0;
    var demone = DaemonSingleton.getInstance();
    var nomeDemone2 = demone.getNomeDemone();
    alert(nomePagina);
    alert(nomeDemone2);

    }
    </SCRIPT>
    <body onFocus="controllaAsync('lista campagne')" bgcolor="#FFFFFF" link="#FFFFFF" vlink="#FFFFFF" alink="#FFFFFF" topmargin="10" leftmargin="10">
    <table width="800" border="0" cellspacing="0" cellpadding="0" align="left">
    <tr><td>
    <xsl:apply-templates select="pgcampagne/frmcampagne/top_AM"/>
    <xsl:apply-templates select="pgcampagne/frmcampagne/top_UT"/>
    </td></tr>
    <tr><td><xsl:apply-templates/></td></tr>
    <tr><td><xsl:apply-templates select="pgcampagne/frmcampagne/bottom"/></td></tr>
    </table>
    </body>
    </html>
    </xsl:template>

    <xsl:template match="pgcampagne">
    <xsl:variable name="titolo">
    <xsl:value-of select="frmcampagne/title"/>
    </xsl:variable>

    <table bgcolor="#0099FF">
    <tr>
    <td> - Modifica la campagna DANIELE -</td>
    </tr>
    </table>
    <table width="800" align="center"><tr><td class="fontTitle" valign="top">
    <div align="left">[img]images\trasp.gif[/img] [img]images/arrow_title.gif[/img]Lista
    delle Campagne&#160;&#160;&#160;&#160;&#160;</div>



    <form name="form1" method="post" action="">

    <table width="700" border="0" cellspacing="1" cellpadding="0" align="center">
    <tr align="center" valign="middle">
    <td height="20" width="50" bgcolor="#009DD9" align="left" valign="top">[img]images/angolo_alto_sx.gif[/img]</img></td>

    <td height="20" width="200" bgcolor="#009DD9" class="FontWhite">
    Nome
    </td>
    <td height="20" width="200" bgcolor="#009DD9" class="FontWhite">
    Operatore
    </td>
    <td height="20" width="130" bgcolor="#009DD9" class="FontWhite">
    Tipo
    </td>
    <td height="20" width="130" bgcolor="#009DD9" class="FontWhite">
    PG-TX
    </td>
    <td height="20" width="130" bgcolor="#009DD9" class="FontWhite">
    Data Scadenza
    </td>
    <td height="20" width="270" bgcolor="#009DD9" class="FontWhite">
    Note
    </td>


    <td height="20" width="50" align="right" valign="top" bgcolor="#009DD9">[img]images/angolo_alto_dx.gif[/img]</td>
    </tr>

    <xsl:apply-templates select="frmcampagne/campagnelist/body/row"/>

    <tr valign="middle" align="center" bgcolor="#009DD9">
    <td height="6" colspan="8" align="left" valign="bottom">

    <xsl:call-template name="paginazione">
    <xsl:with-param name="href">
    <xsl:value-of select="frmcampagne/pager/hrefpag/href"/>
    </xsl:with-param>
    <xsl:with-param name="pagina">
    <xsl:value-of select="frmcampagne/pager/pagina"/>
    </xsl:with-param>
    <xsl:with-param name="first">
    <xsl:value-of select="frmcampagne/pager/first/href"/>
    </xsl:with-param>
    <xsl:with-param name="last_value">
    <xsl:value-of select="frmcampagne/pager/last/desc"/>
    </xsl:with-param>
    <xsl:with-param name="last">
    <xsl:value-of select="frmcampagne/pager/last/href"/>
    </xsl:with-param>
    <xsl:with-param name="prev">
    <xsl:value-of select="frmcampagne/pager/prev/href"/>
    </xsl:with-param>
    <xsl:with-param name="next">
    <xsl:value-of select="frmcampagne/pager/next/href"/>
    </xsl:with-param>
    <xsl:with-param name="vaiPag">
    <xsl:value-of select="frmcampagne/pager/vaiPag/href"/>
    </xsl:with-param>
    <xsl:with-param name="form">0</xsl:with-param>
    </xsl:call-template>

    </td>
    </tr>

    </table>


    </form>


    </td></tr></table>
    </xsl:template>

    <xsl:template match="frmcampagne/campagnelist/body/row">

    <xsl:choose>
    <xsl:when test="((position())mod 2) = 1">
    <xsl:call-template name="riga">
    <xsl:with-param name="color">
    images/sfondo_casella_sopra.gif
    </xsl:with-param>
    </xsl:call-template>
    </xsl:when>
    <xsltherwise>
    <xsl:call-template name="riga">
    <xsl:with-param name="color">
    images/sfondo_casella_sotto.gif
    </xsl:with-param>
    </xsl:call-template>
    </xsltherwise>
    </xsl:choose>


    </xsl:template>

    <xsl:template name="riga">
    <xslaram name="color"/>
    <tr valign="middle" align="center">
    <td height="20" width="50">
    <xsl:attribute name="background">
    <xsl:value-of select="normalize-space($color)"/>
    </xsl:attribute>
    [img]images/quadratino_rosso.gif[/img]
    </td>
    <td height="20" width="200" class="FontTitle">
    <xsl:attribute name="background">
    <xsl:value-of select="normalize-space($color)"/>
    </xsl:attribute>
    <xsl:value-of select="id"/>
    </td>
    <xsl:variable name="tipo"><xsl:value-of select="operatore"/></xsl:variable>
    <td height="20" width="200" class="FontTitle">
    <xsl:attribute name="background">
    <xsl:value-of select="normalize-space($color)"/>
    </xsl:attribute>
    <xsl:value-of select="operatore"/>
    </td>

    <td height="20" width="130" class="FontTitle">
    <xsl:attribute name="background">
    <xsl:value-of select="normalize-space($color)"/>
    </xsl:attribute>
    <xsl:choose>
    <xsl:when test="$tipo='-'">Pubblica</xsl:when>
    <xsltherwise>Privata</xsltherwise>
    </xsl:choose>
    </td>

    <td height="20" width="130" class="FontTitle">
    <xsl:attribute name="background">
    <xsl:value-of select="normalize-space($color)"/>
    </xsl:attribute>
    <xsl:choose>
    <xsl:when test="flag_pgtx = 1">SI</xsl:when>
    <xsltherwise>-</xsltherwise>
    </xsl:choose>
    </td>

    <td height="20" width="270" class="FontTitle">
    <xsl:attribute name="background">
    <xsl:value-of select="normalize-space($color)"/>
    </xsl:attribute>
    <xsl:value-of select="data_scadenza"/>
    </td>
    <td height="20" width="270" class="FontTitle">
    <xsl:attribute name="background">
    <xsl:value-of select="normalize-space($color)"/>
    </xsl:attribute>
    <xsl:value-of select="note"/>
    </td>


    <td height="20" width="50">
    <xsl:attribute name="background">
    <xsl:value-of select="normalize-space($color)"/>
    </xsl:attribute>
    <xsl:if test="riferimenti/menu">
    <script>arMenu<xsl:value-of select="position()+6"/> = new Array(80,"","","#004793","white","white","#098EFF" ,"#098EFF","#098EFF",<xsl:apply-templates select="riferimenti/menu"/>)
    </script>
    <a href="javascript:void(0)" >
    <xsl:attribute name="onMouseOut">
    popDown('elMenu<xsl:value-of select="position()+6"/>')
    </xsl:attribute>
    <xsl:attribute name="onClick">
    popUp('elMenu<xsl:value-of select="position()+6"/>',event);return false;
    </xsl:attribute>
    [img]images/quadratino.jpg[/img]
    </a>
    </xsl:if>
    </td>
    </tr>
    </xsl:template>
    </xsl:stylesheet>


    <!-- Stylus Studio meta-information - (c)1998-2002 eXcelon Corp.
    <metaInformation>
    <scenarios/><MapperInfo srcSchemaPath="" srcSchemaRoot="" srcSchemaPathIsRelative="yes" srcSchemaInterpretAsXML="no" destSchemaPath="" destSchemaRoot="" destSchemaPathIsRelative="yes" destSchemaInterpretAsXML="no"/>
    </metaInformation>
    -->




    package it.tlsoft.qualita.beans;

    import com.jnetx.util.Log;
    import java.awt.*;
    import java.applet.Applet;
    import java.util.*;

    public class DaemonSingleton extends Applet{

    private static DaemonSingleton instance = null;
    private static Map asincroni = null;
    private static String nome = "Daemon Singleton";

    protected DaemonSingleton(){
    asincroni = new TreeMap();
    }

    public static DaemonSingleton getInstance(){
    if(instance == null){
    instance = new DaemonSingleton();
    Log.note("Istanza creata perchè il demone non era istanziato.");
    } else {
    Log.note("Il demone è già in piedi e quindi non è necessario istanziarlo.");
    }
    return instance;
    }

    public String getNomeDemone(){
    return nome;
    }

    public void aggiornaAsync(String nomePagina){
    Integer valore = getValoreAsync(nomePagina);
    int val = valore.intValue();
    val++;
    asincroni.put(nomePagina, new Integer(val));
    printAsync();
    }

    public Integer getValoreAsync(String nomePagina){
    String pagina = (String)asincroni.get(nomePagina);
    Integer valore = (Integer)asincroni.get(nomePagina);
    return valore;
    }

    public void insertAsync(String nomePagina){
    boolean pagina = (boolean)asincroni.containsKey(nomePagina);
    if(!pagina)
    asincroni.put(nomePagina, new Integer(0));
    printAsync();
    }

    public void printAsync(){
    Set chiavi = asincroni.keySet();
    Iterator it = chiavi.iterator();
    while(it.hasNext()){
    String chiave = (String)it.next();
    Integer valore = (Integer)asincroni.get(chiave);
    Log.note(chiave+" --> "+valore);
    }
    }

    }


    Questo è quello ke ho. Credo ke demone debba essere poi utilizzato per invocare i metodi.
    Grazie ancora...

  8. #8
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    </head>
    <script type="text/javascript" src="root/javascript/deployJava.js"></script>
    <script>

    accertati che lo script sia realmente presente nel path relativo indicato

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  9. #9
    Continua a darmi l'errore "Proprietà o metodo non supportati dall'oggetto".
    Eppure i metodi ci sono... ma dove sbaglio?

    Ho provato anche con quest'altro codice, ma sempre la stessa pappa...

    <HTML>
    <HEAD>
    <TITLE>Refresh automatico temporizzato</TITLE>

    <SCRIPT language="JavaScript">
    function doRefresh() {
    if(demone == null)
    alert("Demone is null");
    // refresh della pagina corrente
    if(demone.getValore() == 1){
    document.location.reload();
    demone.setValore();
    }

    }
    // imposto il timeout per il prossimo refresh
    // espresso in millisecondi (1000 = 1 secondo)
    window.setTimeout("doRefresh();", 1000);
    </SCRIPT>

    </HEAD>
    <BODY>

    Apri link in un'altra finestra.


    <SCRIPT language="JavaScript">
    // verifico il refresh della pagina
    var msg = "Questa pagina è stata letta" +
    "
    " + Date() + "";
    document.write(msg);
    </SCRIPT>
    <APPLET CODE="DeamonSingleton.class"
    ID = "demone"
    ARCHIVE="java.applet.Applet"
    NAME="demone"
    HEIGHT=1 WIDTH=1>
    </APPLET>

    </BODY>
    </HTML>


    package beans;

    import java.awt.*;
    import java.applet.Applet;
    import java.util.*;

    public class DeamonSingleton extends Applet{

    private static DeamonSingleton instance = null;
    private static Map asincroni = null;
    private int valore;

    public DeamonSingleton(){
    asincroni = new TreeMap();
    valore = 0;
    print();
    }

    private void print(){
    System.out.println(getValore());
    }

    public static DeamonSingleton getInstance(){
    if(instance == null){
    instance = new DeamonSingleton();
    System.out.println("Istanza creata perchè il demone non era istanziato.");
    } else {
    System.out.println("Il demone è già in piedi e quindi non è necessario istanziarlo.");
    }
    return instance;
    }

    public void aggiornaAsync(String nomePagina){
    Integer valore = getValoreAsync(nomePagina);
    int val = valore.intValue();
    val++;
    asincroni.put(nomePagina, new Integer(val));
    }

    public Integer getValoreAsync(String nomePagina){
    String pagina = (String)asincroni.get(nomePagina);
    Integer valore = (Integer)asincroni.get(nomePagina);
    return valore;
    }

    public void insertAsync(String nomePagina){
    boolean pagina = (boolean)asincroni.containsKey(nomePagina);
    if(!pagina)
    asincroni.put(nomePagina, new Integer(0));
    }

    public void setValore() {
    valore = 1;
    print();
    }

    public int getValore(){
    return valore;
    }

    }

    Grazie ancora...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.