2012-11-15 109 views
4

我是JQuery Mobile的新手。我有一個基於Apache Wicket的應用程序,我想嘗試JQuery Mobile,因此它看起來更適合移動設備。不幸的是,我得到了所有頁面鏈接的"Error Loading Page"錯誤,在切換到JQuery Mobile之前我從來沒有遇到過問題。根本原因似乎是HTTP請求中包含的URL。我使用JQuery Mobile 1.2.0,JQuery 1.8.0,Wicket 1.5.5,使用jetty server 6.1.26和FireFox 16.0進行本地測試。以下是代碼片段:JQuery Mobile Error加載Wicket BookmarkablePageLink

 <ul data-role="listview" data-theme="b"> 
      <li><a href="#" wicket:id="metaprofileList" rel="external">List</a> 
      </li> 
     </ul> 

相應的Java代碼:

add(new BookmarkablePageLink<MetaprofileListPage>(
      "metaprofileList", MetaprofileListPage.class)); 

基於上述,Wicket的正確href="#"與頁被真實的URL替換"#",所以最終的HTML看起來像以下內容:

 <ul data-role="listview" data-theme="b"> 
      <li><a href="com.alcatel_lucent.nms8770.awol.client.web.page.MetaprofileListPage" wicket:id="metaprofileList" rel="external">List</a> 
      </li> 
     </ul> 

當點擊該鏈接,Jetty服務器發送帶有以下網址如下HTTP請求:

GET http://127.0.0.1:7999/com.alcatel_lucent.nms8770.awol.client.web.page.MetaprofileListPage [HTTP/1.1 404 Not Found 0ms] 

這不是MetaprofileListPage的正確URL。之前,我切換到jQuery Mobile的,我也要用同樣的場景進行測試,同樣的碼頭服務器與正確的URL發送以下HTTP請求:

GET http://127.0.0.1:7999/wicket/bookmarkable/com.alcatel_lucent.nms8770.awol.client.web.page.MetaprofileListPage?7 [HTTP/1.1 200 OK 0ms] 

我沒有從HTML文件轉換頭唯一的變化:

<link rel="stylesheet" type="text/css" href="../../css/phone.css" media="only screen and (max-width: 480px)"/> 
<link rel="stylesheet" type="text/css" href="../../css/default.css" media="only screen and (min-width: 1025px)"/> 
<link rel="stylesheet" type="text/css" href="../../css/portrait.css" media="all and (max-device-width: 1024px) and (orientation:portrait)"/> 
<link rel="stylesheet" type="text/css" href="../../css/landscape.css" media="all and (max-device-width: 1024px) and (orientation:landscape)"/> 
<meta name="viewport" content="user-scalable=no, width=device-width"/> 

要標準樣板jQuery Mobile的包括:

<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1.0, user-scalable=no"> 
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.css" /> 
<script src="http://code.jquery.com/jquery-1.8.0.min.js"></script> 
<script src="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js"></script>   

我一直在爲此而努力,持續2周:-(現在我需要做什麼做的就是JQuery Mobile的工作負載正確的網址/頁面?請幫忙!!非常感謝!!

+0

它看起來像Wicket URL渲染器問題。 'com.alcatel_lucent.nms8770.awol.client.web.page.MetaprofileListPage'是一個錯誤的URL,因爲Wicket 1.5默認URL以'wicket/bookmarkable /開頭,你必須改變。可能它看起來基礎網址是定義的或者是其他的東西。嘗試升級到最新的Wicket 1.5.10。也嘗試渲染完整的URL。可能嘗試將base-url標題元素設置爲解決方法。 –

回答

0

你或許應該安裝你的短,衆所周知段下可收藏的網頁,如

你在你的Application#init的覆蓋做到這一點通常方法,如:

@Override 
protected void init() { 
    mountPage("/cheeses/${cheese}", CheesePage.class); 
    mountPage("/profile", MyProfile.class); 
} 

這將至少刪除這些軟件包名稱。