由於Vaadin是一個Java Web應用程序框架,因此可以在Vaadin Java代碼中插入jQuery JavaScript片段嗎?Vaadin框架內部可以使用jQuery嗎?
回答
是的。
創建自己的ApplicationServlet擴展類是這樣的:
public class MyApplicationServlet extends ApplicationServlet {
@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='./jquery/jquery-1.4.4.min.js'><\\/script>\");\n");
page.write("//]]>\n</script>\n");
super.writeAjaxPageHtmlVaadinScripts(window, themeName, application,
page, appUrl, themeUri, appId, request);
}
}
,然後更換Vaadin的servlet在web.xml(默認爲com.vaadin.terminal.gwt.server.ApplicationServlet
):
<servlet-class>com.example.MyApplicationServlet</servlet-class>
然後,您可以讓jQuery的電話在您的代碼通過電話:
MyApplication.getMainWindow().executeJavascript(jQueryString);
正如我試過的,這行代碼:MyApplication.getMainWindow()。executeJavascript(jQueryString);可能只適用於一些簡單的JavaScript代碼。它似乎不太適合支持更復雜的js代碼。 – Kyleinincubator 2012-02-16 20:59:38
我不太瞭解jQuery,但至少在我的Vaadin應用程序中它由Invient圖表(基於Highcharts)使用。如果你在一個js文件中聲明你的jQuery東西,將它放在頁面頭文件(如jQuery.js)中並用executeJavascript調用你的函數,它會對你有用嗎?此外,你檢查(w/firebug或類似的)jQuery庫已成功加載? – miq 2012-02-17 07:10:15
此外,請查看此示例:http://vaadinjquery.appspot.com/ – miq 2012-02-17 07:29:41
另一個習慣mizing爲ApplicationServlet:
public class VaadinApplicationServlet extends ApplicationServlet {
@Override
protected void writeAjaxPageHtmlHeader(BufferedWriter page, String title, String themeUri, HttpServletRequest request) throws IOException {
page.write("<script language='javascript' src='http://code.jquery.com/jquery-1.8.0.min.js'></script>");
super.writeAjaxPageHtmlHeader(page, title, themeUri, request);
}
}
您可以使用@JavaScript和@StyleSheet註釋
@StyleSheet({
/*
* JQuery UI
*/
"vaadin://jquery/jquery-ui-1.9.2.custom/css/ui-darkness/jquery-ui-1.9.2.custom.min.css",
})
@JavaScript({
/*
* JQuery
*/
"vaadin://jquery/jquery-1.11.1.min.js",
/*
* JQuery UI
*/
"vaadin://jquery/jquery-ui-1.9.2.custom/js/jquery-ui-1.9.2.custom.min.js",
})
public class MyUI extends UI {
...
}
執行:
JavaScript.getCurrent().execute("...javascript code here...")
小心較大的腳本。通過vaadin註釋添加javascript的性能非常差。更好地手動將腳本注入到html頭文件中。
這些文件(例如'/ jquery/...')在哪裏?項目中的哪個文件夾? – luckydonald 2016-06-11 12:33:49
文件進入可通過「vaadin://」url訪問的應用程序的「VAADIN」文件夾 – d2k2 2016-06-13 08:20:05
- 1. jQuery框架內部
- 2. 我可以使用KXML框架嗎?
- 3. 我可以使用YAJL iOS框架嗎?
- 4. 我們可以使用WiFi的外部附件框架嗎?
- 5. 我可以只使用zend框架庫的一部分嗎?
- 6. 我可以在PopupPanel中使用GWT框架小部件嗎?
- 7. Android DataBinding可以使用內部類嗎?
- 8. NHibernate可以使用內部類型嗎?
- 9. JQuery:我可以使用對話框打開外部網頁嗎?
- 10. 可以用OpenCL框架執行MIMD嗎?
- 11. SPA框架可以用於MPA嗎?
- 12. Primefaces對話框框架可以從外部域顯示xhtml嗎?
- 13. 可可框架的內部鏈接
- 14. 你可以使用wxPython自動隱藏框架/對話框嗎?
- 15. 我可以使用RAD框架輕鬆使用EJB3 Remote嗎?
- 16. 在早期的框架下使用RyuJIT可以使用4.6嗎?
- 17. UserControl可以在內部嗎?
- 18. HTML5前端框架選項 - Vaadin和Angular都可以一起使用
- 19. 問題jquery-ui draggable()內部框架
- 20. 可可框架:在另一個框架內使用一個框架
- 21. 我可以在整個堆棧框架中使用微型框架嗎?
- 22. 將Facade調用以供內部使用可以嗎?
- 23. Spring框架可以在android應用程序中使用嗎?
- 24. ClickOnce部署可以與Windows Mobile和緊湊框架一起使用嗎?
- 25. 防止內部框架和圖像從使用jQuery
- 26. 我可以使用實體框架來操縱存儲過程的內存嗎?
- 27. 可以識別這個PHP框架嗎?
- 28. 我可以移動UIKeyboard的框架嗎?
- 29. 外部附件框架可以連接到藍牙v4.0 classic嗎?
- 30. 顯示Vaadin框架版本
我不明白爲什麼不,但我不明白爲什麼你會想...當然,框架允許分離的視圖和控制器? – bdares 2012-02-16 00:01:03
該框架提供了使用本地js代碼的自定義組件。然而,當我嘗試了一些複雜的js代碼時,可能沒有任何事情發生。這就是爲什麼我問這樣的問題。 – Kyleinincubator 2012-02-27 05:14:18