我想知道你是否曾尝试制作控制器的移动版本?
现在我正在使用自定义MobileDecoratorMapper扩展GrailsLayoutDecoratorMapper,如果检测到手机,我会应用layout.mobile.gsp,我想为某些控制器做类似的事情。我的想法是检查过滤器是否存在移动版本的控制器(例如SomethingControllerMobile或SomethingController.mobile.groovy),如果是,则重定向到它而不是默认的SomethingController。
原因是我想避免控制器内部的很多if / else语句来检查它是否是移动的,如果是这样做的话也不同 - 我不想要意大利面条代码。
对你来说是否有意义,如果是这样,你试图做类似的事情,你的方法是什么?我唯一想到的是检查过滤器中的文件,但它看起来不是一个合适的解决方案,我认为这应该可以在urlmapping级别完成,其中基于url grails决定哪个控制器到调用
答案 0 :(得分:2)
Spring Mobile plugin允许您以相当优雅的方式有条件地为移动设备执行控制器代码
def list = {
def view = "list"
withMobileDevice {
// mobile-specific logic goes here, in this simplistic example we
// just change the view, but you can do anything you like....
view = "mobileList"
}
render(view: view, model: [list: listInstance])
}