Javafx 2 可以在JavaFX中获取URL参数吗?

Javafx 2 可以在JavaFX中获取URL参数吗?,javafx-2,ria,url-parameters,Javafx 2,Ria,Url Parameters,我正在构建一个JavaFX应用程序,它将在浏览器中运行。 是否可以在JavaFX中获取应用程序URL,如localhost/Java/MyApp/dist/index.html?x=123 我需要接收“x”参数。您可以从页面获取url参数: 获得参数后,可以使用JavaFX部署工具包DTJava.js函数将参数传递给嵌入式JavaFX应用程序。请参阅《JavaFX部署指南》的一节 <!-- Example 7-7 Pass Parameters to an Embedded Applica

我正在构建一个JavaFX应用程序,它将在浏览器中运行。 是否可以在JavaFX中获取应用程序URL,如localhost/Java/MyApp/dist/index.html?x=123


我需要接收“x”参数。

您可以从页面获取url参数:

获得参数后,可以使用JavaFX部署工具包DTJava.js函数将参数传递给嵌入式JavaFX应用程序。请参阅《JavaFX部署指南》的一节

<!-- Example 7-7 Pass Parameters to an Embedded Application -->

<head>
    <script type="text/javascript" src="http://java.com/js/dtjava.js"></script>
    <script>
        function deployIt() {
            // deployment guide sample modified by me to show 
            // getting the zipcode parameter from the url instead of hardcoding it.
            //var zipcode = 95054; 
            var zipcode = getURLParameter("zipcode");

            dtjava.embed(
                {            id: "myApp",
                            url: "Map.jnlp",
                          width: 300,
                         height: 200,
                    placeholder: "place",
                    params: {
                              mode: "streetview",
                              zip: zipcode
                    }
                },
                { javafx: "2.1+" },
                {}
            );
        }
        dtjava.addOnloadCallback(deployIt);
    </script>
</head>
<body>
    <div id="place"></div>
</body>

您的问题应该像“如何获取JavaFX-2小程序的小程序页面参数”这样表述,尝试使用Application.getParameters()-它会工作吗?另外,调用Application.getHostServices().getWebContext().eval()。@AlexanderKirov getParameters()引导我找到getParameters().getNamed().get(“baseURL”);这会得到完整的URL(localhost/Java/MyApp/dist/index.html?x=123)以及getHostServices().getDocumentBase()。在这两种情况下,我都必须处理字符串,但至少我知道这是可能的。我还将尝试一下“jewelsea”的建议,似乎可以从Object obj=Application.getHostServices().getWebContext().eval()调用jQuery,这将要短得多(但我不知道是否可行)。您建议的解决方案更可能是我在Flex+Java项目中遇到相同问题时使用的解决方案。我会尝试一下,然后给出答案。在我的第一次尝试中,我编辑了NetBeans生成的html,添加了您的建议。当我运行应用程序时,文件被删除并重新创建。因此,我在另一个文件夹(/src)中创建了另一个index.html文件。右键单击项目(在NetBeans界面中)、属性、运行(检查它是否在浏览器中运行)并将选项网页更改为my index.html路径。现在效果很好。非常感谢。
<!-- Example 7-7 Pass Parameters to an Embedded Application -->

<head>
    <script type="text/javascript" src="http://java.com/js/dtjava.js"></script>
    <script>
        function deployIt() {
            // deployment guide sample modified by me to show 
            // getting the zipcode parameter from the url instead of hardcoding it.
            //var zipcode = 95054; 
            var zipcode = getURLParameter("zipcode");

            dtjava.embed(
                {            id: "myApp",
                            url: "Map.jnlp",
                          width: 300,
                         height: 200,
                    placeholder: "place",
                    params: {
                              mode: "streetview",
                              zip: zipcode
                    }
                },
                { javafx: "2.1+" },
                {}
            );
        }
        dtjava.addOnloadCallback(deployIt);
    </script>
</head>
<body>
    <div id="place"></div>
</body>
String zipcode = app.getParameters().getNamed("zip");