2012-11-15 69 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); 
} 

这将至少删除这些软件包名称。