是否可以在JavaFX中获取URL参数?

时间:2013-05-23 15:35:14

标签: javafx-2 ria url-parameters

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

我需要收到“x”参数。

1 个答案:

答案 0 :(得分:1)

您可以从页面获取网址参数:Get escaped URL parameter

function getURLParameter(name) {
    return decodeURIComponent((new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec(location.search)||[,""])[1].replace(/\+/g, '%20'))||null;
}

获得参数后,可以使用JavaFX部署工具包DTJava.js函数将参数传递给嵌入式JavaFX应用程序。请参阅JavaFX部署指南的7.3.3 Pass Parameters to a Web Application部分。

<!-- 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>

http://docs.oracle.com/javafx/2/deployment/deployment_toolkit.htm#BABJHEJA

正如JavaFX部署指南所说,要访问应用程序代码中的参数,请使用Application类的getParameters()方法。例如:

String zipcode = app.getParameters().getNamed("zip");