忽略匹配块中的UrlMapping :: View属性

时间:2011-08-02 17:27:04

标签: grails view url-mapping

鉴于URI / admin / article / index,为什么这个url映射不起作用?

"/admin/$controller/$action?/$id?"{ 
        view = "/admin/index" // no dice, ignored 
        //action = "foo" // uncommented, this is picked up 
} 

我希望所有管理员控制器默认使用管理视图(而不必在每个控制器的每个操作中呈现视图)。 “/ account / $ controller / ...”和应该使用公共视图的任何其他站点模块也是如此。

也许还有另一种方法可以达到这个目的,但是假设UrlMappings就是这样做的地方......

1 个答案:

答案 0 :(得分:1)

看起来你正在尝试做一些与你写的完全不同的事情。

您已经在基本网址映射中映射了action,并且系统会根据controller自动选择视图,因此您需要define different mappings查看那些不是foo的视图有一个控制器,以及默认操作为index的项目的另一个映射。但是,控制器上的默认操作是{{1}},因此通常无需在未指定控制器的情况下提供默认操作。

我认为你总体上误解了MVC框架是如何工作的。控制器不应呈现任何内容,并且视图应特定于控制器/操作。如果多个控制器呈现完全相同的视图,我愿意打赌控制器呈现HTML或视图过于复杂。

您应该查看Layouts with SiteMesh,它允许您创建默认模板结构,然后通过视图更改特定内容。