• dashboard
  • " />
    • dashboard
    • " />
      • dashboard
      • "/>
        DEVHIDE
        • Home (current)
        • About
        • Contact
        • Cookie
        • Home (current)
        • About
        • Contact
        • Cookie
        • Disclaimer
        • Privacy
        • TOS
        Login Or Sign up

        Grails Layouts - Kind of a Nested Layout Problem, Conditional Content

        823 Views Asked by Gregg At 28 February 2011 at 20:08 2025-12-23T12:19:38.358000

        I have the following (simplified) layout:

        <header>
          ... more stuff here
          <nav id="nav">
            <div class="content_wrapper">
              <ul id="menu">
                <li>dashboard</li>
              </ul>
            </div>
          </nav>
        </header>
        <div id="main_content">
          <div class="content_wrapper">
            <g:layoutBody/>
          </div>
        </div>
        

        My problem is that the "menu" nav is dependent on what is rendered in the layoutBody. Not only will the text "dashboard" change to "login", "support", etc but on some pages there are buttons, links, etc. Is there any way in Grails, without changing the layout of the page, to dynamically render this NAV element based on the layoutBody? I've read the docs including the content block section, but they don't solve the problem because they are still pre-determined in the main layout.

        grails layout sitemesh
        Original Q&A
        1

        There are 1 best solutions below

        1
        fabien7474 fabien7474 On 28 February 2011 at 22:00 BEST ANSWER

        I have the same problem on my grails webapp. Here is the way I have solved it. In your layout:

        <nav id="nav">
            <div class="content_wrapper">
              <ul id="menu">
                //Here you can insert whatever you have in all your pages
                //Then below you can insert custom content depending on main body
                <li><g:pageProperty name="page.nav-content"/></li>
              </ul>
            </div>
        </nav>
        

        Then in your main views (like home.gsp) requiring additional modules (like login module), you can include something like:

        <content tag="nav-content">
           <g:include controller="nav" action="login"/>
        </content>
        

        Related Questions in GRAILS

        • Table UserRole not populated in Grails 6
        • Grails run-app or grails compile is not working with 6..0.0( java 11 or 17)
        • Hibernate OptimisticLocking(type = OptimisticLockType.DIRTY) not working
        • HibernateOptimisticLockingFailureException in Groovy / Grails, how to proceed after recovry
        • Grails with Spring Security: How do I keep a password history to prevent password reuse
        • How can I configure a Grails application using the Spring Security Rest plugin to authenticate with Amazon Cognito
        • Grails - Problem to Exclude a Filter from Specific Endpoints
        • Why are my beans disabled onStartUp after upgrading to grails5?
        • Getting error on upgrading mysql 8 with grails 2.4.3
        • get XFF using angular
        • how to compare to collections of map in groovy
        • Grail/GORM Data Service @Query - Join with Multiple Conditions
        • Build Grails project with specific environment
        • Grails params in controller empty on too large post request
        • Grails5 upgrade - hibernate now returning a hibernate proxy instead of actual object - why?

        Related Questions in LAYOUT

        • Why does my ViewPager not show anything when i add a scrollview?
        • Is it possible to set height value so that it is both inheritable and acts as min-height?
        • Background image not rendering under AppBar with React Material-UI
        • HBox doesn't fill parent GridPane when rotated by 90 degrees
        • issue when trying to use trained layoutlmv3
        • Does anyone know how to make iPad layout the same as iPhone's? Size wise the text and overall layout get's smaller when I run the app on the iPad
        • How can I place near (vertically) two TextView?
        • SplitView elements both in horizontally and vertically in qml
        • Splitview inside a Layout in QML is not working properly
        • How do I fix fragment overlaping with main_activity fragment in Kotlin
        • Why are my Buttons overlapping in QML ColumnLayout?
        • How to make a face using Constraint Layout?
        • Preventing SwiftUI Frame Size Changes from Affecting Window Size in a macOS App
        • React-layout dynamic content?
        • Can I scale layout to a smaller screen?

        Related Questions in SITEMESH

        • Struts 6.x migration issues with sitemesh
        • can sitemesh3 be used by spring boot 3.x?
        • java.lang.NoClassDefFoundError: javax/servlet/Filter : How to use sitemesh 2.4 with spring 6
        • Grails5 standalone: First browser hit takes longer
        • Dynamic layout selection in grails 3
        • Sitemesh3 Decorator only works with JSP extension
        • How to write Sitemesh configuration withouw WEB.XML
        • Why Sitemesh doesn't work in my project (Spring)?
        • Apache Tiles retired. Alternatives?
        • How to fix 404 from Sitemesh demo App
        • Struts 1.2.9 to Struts 2.5.16 migration. getContext() returning NULL
        • Sitemesh header and footer should not append to login screen
        • How to Render a Grails View Without a Layout
        • Sitemesh 2.4.2 decorator issue with pattern
        • Spring and SiteMesh Error Page is not decorated (skips main filters)

        Trending Questions

        • UIImageView Frame Doesn't Reflect Constraints
        • Is it possible to use adb commands to click on a view by finding its ID?
        • How to create a new web character symbol recognizable by html/javascript?
        • Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
        • Heap Gives Page Fault
        • Connect ffmpeg to Visual Studio 2008
        • Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
        • How to avoid default initialization of objects in std::vector?
        • second argument of the command line arguments in a format other than char** argv or char* argv[]
        • How to improve efficiency of algorithm which generates next lexicographic permutation?
        • Navigating to the another actvity app getting crash in android
        • How to read the particular message format in android and store in sqlite database?
        • Resetting inventory status after order is cancelled
        • Efficiently compute powers of X in SSE/AVX
        • Insert into an external database using ajax and php : POST 500 (Internal Server Error)

        Popular # Hahtags

        javascript python java c# php android html jquery c++ css ios sql mysql r reactjs node.js arrays c asp.net json

        Popular Questions

        • How do I undo the most recent local commits in Git?
        • How can I remove a specific item from an array in JavaScript?
        • How do I delete a Git branch locally and remotely?
        • Find all files containing a specific text (string) on Linux?
        • How do I revert a Git repository to a previous commit?
        • How do I create an HTML button that acts like a link?
        • How do I check out a remote Git branch?
        • How do I force "git pull" to overwrite local files?
        • How do I list all files of a directory?
        • How to check whether a string contains a substring in JavaScript?
        • How do I redirect to another webpage?
        • How can I iterate over rows in a Pandas DataFrame?
        • How do I convert a String to an int in Java?
        • Does Python have a string 'contains' substring method?
        • How do I check if a string contains a specific word?

        Copyright © 2021 Jogjafile Inc.

        • Disclaimer
        • Privacy
        • TOS
        • Homegardensmart
        • Pricesm.com
        • Aftereffectstemplates