我有一个基本标题布局( base-header-footer.gsp )
<!DOCTYPE html>
<html>
<head>
<title><g:layoutTitle default="${g.message(code: 'title.index.page')}"/></title>
</head>
... some common resources loading....
<body id="launch">
<g:layoutBody/>
...........................
<r:layoutResources />
</body>
</html>
然后还有2个标题,一个用于登录用户,另一个用于访客用户,这两个标题布局都在扩展基本布局。
来宾用户( anonymouys-header-footer.gsp ) -
<g:applyLayout name="base-header-footer">
<!DOCTYPE html>
<html>
<head>
<g:layoutHead/>
</head>
<body>
... render guest user header
<g:layoutBody/>
</body>
</html>
登录用户( loggedin-header-footer.gsp ) -
<g:applyLayout name="base-header-footer">
<!DOCTYPE html>
<html>
<head>
... some css
<g:layoutHead/>
</head>
<body>
... Render header for logged-in user
</body>
... load some JS file...
</html>
现在在特定页面中,我根据用户的登录状态应用访客或登录布局,因此我想显示用户所在的页面特定标题,但它不起作用。
这就是我使用这些布局的方式
OrderStatus.gsp -
<!DOCTYPE html>
<html>
<head>
<title>Order status | Some title</title>
<meta name="layout" content="logged-in-header-footer" />
<script type="text/javascript" src="${resource(dir:'js',file:'some.js')}"></script>
</head>
<body>
</body>
</html>
但我仍然看到标题是 base-header-footer.gsp ,不是OrderStatus.gsp中的标题
我也尝试在 OrderStatus.gsp 中使用 g:layoutTitle ,但没有帮助。
非常感谢任何帮助。
答案 0 :(得分:3)
使用
<meta name="layout" content="base-header-footer">
在您的页面中加载布局,然后在那里添加标题,
<title>${whatever.something()}</title>
你的布局中的添加:
<title><g:layoutTitle/></title>
享受。
答案 1 :(得分:1)
尝试使用
<title><g:layoutTitle/></title>
布局中的( base-header-footer 和 loggedin-header-footer.gsp )。 official documentation。
中的更多信息