2012-03-12 102 views
0

即時通訊使用Vaadin並試圖導入jQuery和我自己的腳本。我已經擴展ApplicationServlet類,並重新定義了這個方法Vaadin不允許導入外部腳本

@Override 
protected void writeAjaxPageHtmlHeader(BufferedWriter page, String title, 
     String themeUri, HttpServletRequest request) { 

    try { 
     super.writeAjaxPageHtmlHeader(page, title, themeUri, request); 
     page.write("\n<script type=\"text/javascript\" src=\"/VAADIN/themes/MyTheme/js/jquery-1.7.1.js\"></script>"); 
     page.write("\n<script type=\"text/javascript\" src=\"/VAADIN/themes/MyTheme/js/script.js\"></script>"); 
     System.out.println("Added jQuery and other scripts to page header."); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
} 

,並在web.xml中servlet類改變我自己,但是當我得到它運行我的腳本不工作,所以我打開JavaScript控制檯,並得到這兩消息:

不允許加載本地資源:文件:///VAADIN/themes/MyTheme/js/jquery-1.7.1.js

不允許加載本地資源:文件:/// VAADIN /themes/MyTheme/js/script.js

爲什麼會發生這種情況,我可以做什麼做?

回答

2

的themeUri參數提供使用主題的URI,所以儘量使用在你的src屬性:

page.write("\n<script type=\"text/javascript\" src=\"" + themeUri + "/js/jquery-1.7.1.js\"></script>");