有什么方法可以复制 Rails 的“链接到除非电流”吗?
IE。如果我的导航中有一个链接列表,并且我想用不同的 css 样式标记当前页面(或者甚至是纯文本,而不是链接)?
现在我刚刚在我的操作类 (getPage()) 中创建了一个方法,它返回一个我为每个操作分配的名称,并在构建我的导航时对其进行测试......有效但不漂亮,我必须手动设置页面名称(无法以某种方式自动从上下文中获取它)。
使用 Struts 2、Tiles、JSP + Struts 标签库。
有什么方法可以复制 Rails 的“链接到除非电流”吗?
IE。如果我的导航中有一个链接列表,并且我想用不同的 css 样式标记当前页面(或者甚至是纯文本,而不是链接)?
现在我刚刚在我的操作类 (getPage()) 中创建了一个方法,它返回一个我为每个操作分配的名称,并在构建我的导航时对其进行测试......有效但不漂亮,我必须手动设置页面名称(无法以某种方式自动从上下文中获取它)。
使用 Struts 2、Tiles、JSP + Struts 标签库。
要获取当前 url,您可以使用不带任何参数、操作等的 Url 标签:
<s:url var="currenturl" includeParams="get" escapeAmp="false"/>
然后假设您构建导航网址,例如:
<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)">