views:

820

answers:

2

So I have a navigation template (/common/_navigation.gsp) that is getting rendered in the Grails projects main Layout file (/layouts/main.gsp). How do I pass some kind of variable/parameter/arg from the individual view files to layout and eventually into the navigation template? I just want the right tab to be highlighted when I'm on a page.

(We've already tried using the Grails Navigation Plugin. Since we have different tabs that point to the same controllers (same view, different filter) it breaks down.)

A: 

You'd need to use a page property: http://grails.org/doc/1.1.1/ref/Tags/pageProperty.html

Then pass it into the render tag using the model param.

cheers

Lee

leebutts
A: 

I do this pattern all the time. In my view, I can attach a property to the page either manually or by using the parameter tag in the view that I'm rendering. Its not documented in the Grails user guide, but its super handy.

<parameter name="foo" value="bar" />

Then I would access the page property by using the pageProperty tag.

<g:set var="activeNavItem" value="${pageProperty(name: 'page.foo')}"/>

The layout doesn't need to handle this variable at all :-)

Colin Harrington