2011-11-23 89 views
3

添加不同的JavaScript我有我添加了標記HTML中的JavaScript文件檢票應用:如何在開發和生產檢票

<script src="script/jquery.min.js" type="text/javascript"></script> 

我的JavaScript文件不會把我的.java或旁邊。 html文件,它們位於服務器中的不同位置,如前面的腳本聲明中所示。

我的問題是:是否有可能根據應用程序模式添加這些javascript文件? I.E.如果應用程序處於開發模式,則加載一個JavaScript文件,如果它在生產中則加載另一個JavaScript文件。

謝謝!

PS:這個想法是如此的調試變得更多鈔票來加載生產「最小」版本,但對發展的擴展文件

注意:這裏看着不同的答案,我重新狀態:問題未找到時檢票應用處於開發或部署模式,我知道,但有關如何更改HTML標記或加入不同的JavaScript資源

回答

2

extendig的@rotsch你可以做到這一點在檢票口1.5答案:

@Override 
public void renderHead(IHeaderResponse response) { 
    if(DEVELOPMENT) 
     response.renderString("<script type=\"text/javascript\" src=\"url1\"></script>"); 
    else 
      response.renderString("<script type=\"text/javascript\" src=\"url2\"></script>"); 

} 

https://cwiki.apache.org/WICKET/migration-to-wicket-15.html#MigrationtoWicket1.5-RemovedHeaderContributorandfriends

+3

或甚至更乾淨,請參閱[在遷移指南中的這一點](https://cwiki.apache.org/WICKET/migration-to-wicket-15.html #MigrationtoWicket1.5-RemovedHeaderContributorandfriends。) – rotsch

1

你可以找出哪種模式,你是用下面的代碼:

RuntimeConfigurationType.DEPLOYMENT.equals(getApplication().getConfigurationType())

RuntimeConfigurationType.DEVELOPMENT.equals(getApplication().getConfigurationType())

+0

我知道,但我們知道的類型後,我要添加一個或其它JS – spuas

+0

都清楚,看我的其他評論 – rotsch

0

我在properties file中設置了一個屬性,並在啓動虛擬機時將其添加到了路徑中。

然後我做了一個類似於PHP的答案。

+0

沒有關係找出開發或沒有時,我知道,我需要使用'renderHead'方法添加一些不同的文件,在wicket – spuas

1

我用這個目錄結構:

resources 
|---JQueryResource.java 
|---jquery-1.6.4.js 
|---jquery-1.6.4.min.js 

有了這個類:

public class JQueryResource { 
    /** 
    * Must be called in a RequestCycle. 
    * 
    * @return Url for the jQuery library. 
    */ 
    public static String getURL() { 
     if (Application.get().usesDevelopmentConfig()) { 
      Url url = 
        RequestCycle.get().mapUrlFor(
          new PackageResourceReference(JQueryResource.class, "jquery-1.6.4.js"), 
          null); 
      return url.toString(); 
     } else { 
      Url url = 
        RequestCycle.get().mapUrlFor(
          new PackageResourceReference(JQueryResource.class, 
            "jquery-1.6.4.min.js"), null); 
      return url.toString(); 
     } 
    } 
} 

這是我如何將資源添加到我的網頁。

@Override 
public void renderHead(IHeaderResponse a_response) { 
    a_response.renderJavaScriptReference(JQueryResource.getURL()); 
} 
+0

雖然我更喜歡@osdamv答案,但我沒有相同的目錄佈局,所以我的.js文件遠離.java文件存儲,因此我需要使用URL來引用它們。如果你知道如何用你的方法得到這樣一個URL,那也會很好。 謝謝 – spuas