2012-03-03 123 views
2

我一直在阅读关于responsive web pattern,并且我已经在测试页上成功实现了它。不过,我发现布局受限于HTML标签的顺序/顺序。您可以在许多内容上设置display:none属性等,但这并不好。服务器端的响应Web模式

那么在服务器端有没有办法根据用户使用何种设备来区分HTML响应将包含哪些内容?我主要对Scala(Lift)和Java EE解决方案感兴趣。

+0

不会有 “该” 溶液的例子。我还没有听说过一个框架,它允许您根据设备呈现内容,而不会有太多的代码重复。也许你正在寻找一个功能强大的模板语言。 – phineas 2012-03-05 16:51:08

回答

2

使用Lift可以识别userAgent,如果它是移动的,则可以显示与用户使用桌面浏览器不同的html。

有几种方法可以实现这一点,一种来自Sitemap,或另一种来自每个片段。

mailing list是询问每种方法的具体细节的好地方。

更新

这是使用网站地图从电梯

def sitemap = SiteMap(
    Menu.i("Home")/"index" >> pickTemplate(), 
    Menu.i("First")/"first" 
) 

//Show mobile or regular page 
def pickTemplate() ={ 
    //If the browser is Chrome, pick this template 
    if(S.request.map(_.isChrome) openOr true ){ 
    Template(()=>Templates("chrome" :: Nil) openOr (NodeSeq.Empty)) 
    } else{ 
    Template(()=>Templates("other" :: Nil) openOr (NodeSeq.Empty)) 
    } 
}