将外部 javascript 文件包含到 Vaadin 应用程序中的最简单方法是覆盖该Application#writeAjaxPageHtmlVaadinScripts
方法。
要从 Vaadin 服务器端代码调用 javascript 函数,请调用Window#executeJavascript
@Override
protected void writeAjaxPageHtmlVaadinScripts(Window window,
String themeName, Application application, BufferedWriter page,
String appUrl, String themeUri, String appId,
HttpServletRequest request) throws ServletException, IOException {
page.write("<script type=\"text/javascript\">\n");
page.write("//<![CDATA[\n");
page.write("document.write(\"<script language='javascript' src='" + appUrl + "/VAADIN/scripts/example.js'><\\/script>\");\n");
page.write("//]]>\n</script>\n");
super.writeAjaxPageHtmlVaadinScripts(window, themeName, application,
page, appUrl, themeUri, appId, request);
}
注意:我从未将 Vaadin 用作 Portlet,但快速浏览一下表明这应该可以正常工作。
但是,这种方法相当初级,仅适用于快速破解/概念验证:如果您想要更复杂的东西,那么开发自己的 Vaadin 小部件是正确的方法。它为您提供 GWT 和 JSNI 的强大功能,并为您提供更精细的控制:有关更多详细信息,请参阅The Book Of Vaadin。