Spring Apache Tiles 2.5-将菜单元素标记为活动
我正在使用SpringMVC3.1和Tiles 2 我有这个瓷砖:Spring Apache Tiles 2.5-将菜单元素标记为活动,spring,spring-mvc,tiles2,apache-tiles,Spring,Spring Mvc,Tiles2,Apache Tiles,我正在使用SpringMVC3.1和Tiles 2 我有这个瓷砖: <ul class="nav"> <li class="active"><a href="/person">Person</a></li> <li><a href="/student">Student</a></li> <li><a href="/superadmin">Superadm
<ul class="nav">
<li class="active"><a href="/person">Person</a></li>
<li><a href="/student">Student</a></li>
<li><a href="/superadmin">Superadmin</a></li>
</ul>
以及tiles.xml:
<tiles-definitions>
<definition name="base.definition" template="/WEB-INF/pages/tiles/template.jsp">
<put-attribute name="meta" value="/WEB-INF/pages/tiles/meta.jsp" />
<put-attribute name="head" value="/WEB-INF/pages/tiles/head.jsp" />
<put-attribute name="navbar" value="/WEB-INF/pages/tiles/navbar.jsp" />
<put-attribute name="sidebar" value="/WEB-INF/pages/tiles/sidebar.jsp" />
<put-attribute name="body" value="" />
<put-attribute name="footer" value="/WEB-INF/pages/tiles/footer.jsp" />
</definition>
<definition name="user.new" extends="base.definition">
<put-attribute name="body" value="/WEB-INF/pages/user.new.jsp" />
</definition>
<definition name="user.show" extends="base.definition">
<put-attribute name="page_title" value="Tiles tutorial homepage" type="string"/>
<put-attribute name="section_title" value="User's list" type="string"/>
<put-attribute name="body" value="/WEB-INF/pages/user.show.jsp" />
</definition>
<definition name="login" template="/WEB-INF/pages/login.jsp">
<put-attribute name="meta" value="/WEB-INF/pages/tiles/meta.jsp" />
<put-attribute name="head" value="/WEB-INF/pages/tiles/head.jsp" />
<put-attribute name="body" value="/WEB-INF/pages/login.jsp" />
</definition>
</tiles-definitions>
现在,我想为所选菜单设置类“active”。
我可以用瓷砖做吗?或者我必须查找Spring?方法1-JSP/JSTL和Spring/Bean 更改菜单平铺以使用某些菜单对象的列表构建菜单,您可以在会话/模型上设置这些对象。菜单对象可以有一个布尔标志,指示将活动类设置在哪个上 方法2-JavaScript/会话 如果不想这样做,可以使用HTML类、JavaScript和会话/模型属性的组合来完成任务。您要做的是在LI元素上重载class属性,例如:
<ul class="nav">
<li class="person"><a href="/person">Person</a></li>
<li class="student"><a href="/student">Student</a></li>
<li class="superadmin"><a href="/superadmin">Superadmin</a></li>
</ul>
这将使用jQuery选择适当的LI并向其中添加“活动”类
方法3-使用URL的纯JSTL
如果您不喜欢将菜单绑定到属性的存在,并且您知道在解析URL时,URL将包含一些信息,您可以使用这些信息来确定要将哪个LI设置为活动状态,那么您可以使用这些信息。您可以获得当前页面的URL,如
<c:out value="${pageContext.request.requestURL}"/>
以某种有意义的方式解析${pageContext.request.requestURL},您可以使用它来确定哪个是活动的
方法4-使用URL的纯JavaScript
与上面相同,但是使用JavaScript获取当前URL,解析它,并像我们在方法2中所做的那样操作DOM
希望其中一个能帮助您。非常感谢您!抱歉迟到了,但网站没有通知我!如果满足您的要求,您应该将此响应设置为解决方案。tiles方式如何?除非Apache tiles有一些我不知道的功能,否则您仍然需要在tile中传递一些内容或使用一些逻辑在active和not active之间切换。Tiles只允许您封装JSP片段并将其连接到模块化模板中。也许有一种方法可以设置一个
if/else
,但是如果有,我不知道。
<c:out value="${pageContext.request.requestURL}"/>