2013-01-25 39 views
1

我想從JSP頁面爲Java FX應用程序提供動態輸入。我無法找到任何合適的方法。 動態的意思,我想根據JSP頁面中的用戶輸入給JavaFX應用程序提供輸入。我在相同的JSP頁面中嵌入了相同的Java FX應用程序。 歡迎任何幫助。 我想通過JSP頁面運行時爲Java FX應用程序提供輸入。從JSP輸入到JavaFX

回答

0

我不知道,但嘗試:HostServices.getWebContext

+0

但這樣如果JSP頁面發生任何變化。 JavaFX應用程序將如何知道它。 –

1

請參見JavaFX部署話題:Accessing a JavaFX Application from a Web Page

JavaScript => JavaFX中的JavaFX接口與用於傳統Java小程序的JavaFX接口相同 - 它使用稱爲LiveConnect的技術。有關使用LiveConnect的進一步文檔位於LiveConnect文檔主題:Calling from JavaScript to Java

JavaFX的文檔提供了下面的示例代碼:

的Java代碼

package testapp; 

public class MapApp extends Application { 
    public static int ZOOM_STREET = 10; 

    public static class City { 
     public City(String name) {...} 
     ... 
    } 

    public int currentZipCode; 

    public void navigateTo(City location, int zoomLevel) {...} 
    .... 
} 

JavaScript代碼

function navigateTo(cityName) { 
    //Assumes that the Ant task uses "myMapApp" as id for this application 
    var mapApp = document.getElementById("myMapApp"); 
    if (mapApp != null) { 
     //City is nested class. Therefore classname uses $ char 
     var city = new mapApp.Packages.testapp.MapApp$City(cityName); 
     mapApp.navigateTo(city, mapApp.Packages.testapp.MapApp.ZOOM_STREET); 
     return mapApp.currentZipCode; 
    } 
    return "unknown"; 
} 
window.alert("Area zip: " + navigateTo("San Francisco")); 

注意在JavaScript代碼的重要評論「假設條件Ant任務使用「myMapApp」作爲此應用程序的標識」。所提到的ID是fx:deploy taskplaceholderid參數。

現在,因爲您使用的是JSP,所以包含該應用程序的HTML頁面可能由JSP處理器動態生成。因此,您可能想要做的就是利用fx:template任務生成修改後的jsp源代碼,該代碼調用dtjava deployment script來嵌入您的目標JavaFX應用程序。