grails - grails当前页面亮点

标签 grails gsp

在grails中,我有一个菜单。我试图突出显示 Activity 页面的菜单项:

link1
link2 (show as bold if the controller action partially matches this gsp name)
link3

我有工作代码,但似乎会有更好的方法。

Taglib可以正常工作:
def active = { attrs, body ->
    for (page in attrs.check) {
        if (params.action.startsWith(page)) {
            out << "current"
            break
        }
    }
}

这个选项可以正常工作,但是看起来有些罗word:
<li><a href="${createLink(action: 'contactInfo')}" title="Contact Info" class="<xyz:active check='${['contactInfo']}'/>">Contact Info</a></li>
<li><a href="${createLink(action: 'aboutYouFamily')}" title="About You" class="<xyz:active check='${['aboutYouFamily', 'aboutYouBackground', 'aboutYouCharacteristics', 'aboutYouLifestyle', 'aboutYouApplicant2']}'/>">About You</a></li>

这炸了:
<g:link action='myProfile' class="${<xyz:active check='${['myControllerAction']}'/>}">My Profile</g:link>

我不相信您可以将taglib作为参数传递给g:link

我还要求多个gsps / actions会由于其命名方式而导致链接处于 Activity 状态:
aboutYouLocation
aboutYouBackground
aboutYouEducation

所有使该链接成为 Activity 链接:
About You

我可以进行部分匹配,但是我也有一些以aboutYour(额外R)开头的 Action / gsps,导致我将数组的使用传递给了我的taglib。

最佳答案

有一种使用Platform Core plugin的标准方法。它将为您提供Navigation API:

grails-app / conf / AppNavigation.groovy

navigation = {
    // Declare the "app" scope, used by default in tags
    app {
      contact(action: 'contactInfo')
      about(action: 'aboutYouFamily')
    }
}

* grails-app / view / _menu.gsp *(您可以在布局或GSP中使用的模板)
<nav:menu scope="app" id="navigation" />

您还可以自定义为菜单生成的html,请检查custom item rendering

关于grails - grails当前页面亮点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19406619/

相关文章:

grails - gradle多项目构建为grails-无法组装具有休眠依赖项的项目

grails - 当应该调整默认的 Grails 缓存设置时,有哪些好的例子?

grails - 在grails gsp中调用标签不起作用

grails - 在 Grails 中使用一对多关系扩展域类

java - Grails、作业、静态辅助方法和 Hibernate session

spring - Grails中的JMS请求/答复模式

forms - grails表单重定向给出404,但是URL映射有效

grails - 在gsp View 中如何将$ {}变量发送到模板模型?

grails - 是否可以允许编辑 GSP(包括布局)作为 Grails 应用程序功能的一部分?

grails - 如何在GSP页面中向body元素动态添加属性