为移动用户选择不同的grails布局

为移动用户选择不同的grails布局,grails,web-applications,mobile,Grails,Web Applications,Mobile,我有一个webapp,它将main.gsp定义为所有视图中使用的默认布局,我正在使用SpringMobile插件在移动视图和桌面视图之间切换。但我现在想在mobile.gsp布局和main.gsp布局之间为移动用户进行更改 执行此操作的最佳方法是什么?由于您使用的是Spring Mobile,因此可以使用筛选器拦截控制器调用并设置布局: class MobileFilters { def filters = { mobileFilter(controller:'*', a

我有一个webapp,它将main.gsp定义为所有视图中使用的默认布局,我正在使用SpringMobile插件在移动视图和桌面视图之间切换。但我现在想在mobile.gsp布局和main.gsp布局之间为移动用户进行更改


执行此操作的最佳方法是什么?

由于您使用的是Spring Mobile,因此可以使用筛选器拦截控制器调用并设置布局:

class MobileFilters {
    def filters = {
        mobileFilter(controller:'*', action:'*') {
            afterView = {     
               def layout = "main"
               withMobileDevice {
                   layout = "mobile"
               }
               session.layout = layout
           } 
        }
     }
}
然后在你的GSP里

<meta name="layout" content="${session.layout}">


如果您对手机有不同的视图,为什么不能修改这些视图以使用mobile.gsp布局?也许我不明白。我以前有完全不同的视图,但我提出的问题是,如果我想使用相同的视图,但布局不同,该怎么办。