【问题标题】:Creating navigation links in Struts 2在 Struts 2 中创建导航链接
【发布时间】:2009-03-31 12:33:14
【问题描述】:

有没有办法复制 rails 的“链接到除非当前”?

即。如果我的导航中有一个链接列表,并且我想用不同的 css 样式标记当前页面(或者甚至是纯文本,而不是链接)?

现在我刚刚在我的操作类 (getPage()) 中创建了一个方法,它返回一个我为每个操作指定的名称,并在构建我的导航时对其进行测试...有效但不漂亮,我必须手动设置页面名称(无法以某种方式自动从上下文中获取它)。

使用 Struts 2、Tiles、JSP + Struts 标签库。

【问题讨论】:

    标签: struts2


    【解决方案1】:

    要获取当前网址,您可以使用不带任何参数、操作等的 Url 标签:

    <s:url var="currenturl" includeParams="get" escapeAmp="false"/>
    

    然后假设您构建导航 Url,如下所示:

    <s:url var="url" action="someAction" escapeAmp="false">
        <s:param name="id" value="id"/>
    </s:url>
    

    然后您可以使用普通的 if 标签来测试当前 url 是否与您构建的匹配。

    <s:if test="#url eq #currenturl">
    </s:if>
    

    例如,要更改类,您可以对锚定义进行条件内联:

    <a href="<s:property value="#url"/>" <s:if test="#url eq #currenturl">class="current"</s:if>>XXX</a>
    

    如果您的 URL 中的参数对导航有意义,则使用 includeParams="get",否则排除该参数并使用 if like:

    <s:if test="#url.startsWith(#currenturl)">
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多