去掉主页 breadcrumb导航条上的<Liferay>字样
2012-09-03 14:34
375 查看
需求:
我们公司需要从breadcrumb上去掉最前面的那个Liferay,如图:
![](http://blog.51cto.com/attachment/201209/140709565.png)
我们想只保留"Welcome",而去掉前面的"Liferay"
问题分析:
为了解决这个需求,我们首先要找到这个Welcome是怎么出现的,它定义在breadcrumb.jsp中:
我们找到这个<liferay-ui:breadcrumb>的定义,它在liferay-ui.tld文件中:
所以它的实现在BreadcrumbTag类中,我们跟进到BreadcrumbTag类中,可以发现,真正用来显示的内容的页面在page.jsp中:
我们在page.jsp中看到,它先判断layout是否不为null(默认是不为null)的,所以它会去引入display_style_XX.jsp
这个XX就是水平或者竖直,对应的XX=horizontal或者vertical.
因为我们例子中这个显示方式是水平的,所以我们最终找到了这个页面,是display_style_horizontal.jsp:
所以最终显示的导航条是由字符串拼接而成的(breadcrumbString),这样我们就很容易找到了这个"Liferay"的显示是最左边一个,也就是showGuestGroup,见04-06行。所以我们只需要吧showGuestGroup设置为false就达到目的了。
解决方法:
我们只要吧showGuestGroup设置为false,为此在portal-ext.properties中加入一行:
就大功告成了。
我们公司需要从breadcrumb上去掉最前面的那个Liferay,如图:
![](http://blog.51cto.com/attachment/201209/140709565.png)
我们想只保留"Welcome",而去掉前面的"Liferay"
问题分析:
为了解决这个需求,我们首先要找到这个Welcome是怎么出现的,它定义在breadcrumb.jsp中:
<liferay-ui:breadcrumb showCurrentGroup="<%= false %>" showCurrentPortlet="<%= false %>" showGuestGroup="<%= false %>" showLayout="<%= false %>" showParentGroups="<%= false %>" />
我们找到这个<liferay-ui:breadcrumb>的定义,它在liferay-ui.tld文件中:
<tag> <name>breadcrumb</name> <tag-class>com.liferay.taglib.ui.BreadcrumbTag</tag-class> <body-content>JSP</body-content> <attribute> <name>displayStyle</name> <required>false</required> <rtexprvalue>true</rtexprvalue> </attribute> <attribute> <name>portletURL</name> <required>false</required> <rtexprvalue>true</rtexprvalue> </attribute> <attribute> <name>selLayout</name> <required>false</required> <rtexprvalue>true</rtexprvalue> </attribute> <attribute> <name>selLayoutParam</name> <required>false</required> <rtexprvalue>true</rtexprvalue> </attribute> <attribute> <name>showCurrentGroup</name> <required>false</required> <rtexprvalue>true</rtexprvalue> </attribute> <attribute> <name>showCurrentPortlet</name> <required>false</required> <rtexprvalue>true</rtexprvalue> </attribute> <attribute> <name>showGuestGroup</name> <required>false</required> <rtexprvalue>true</rtexprvalue> </attribute> <attribute> <name>showLayout</name> <required>false</required> <rtexprvalue>true</rtexprvalue> </attribute> <attribute> <name>showParentGroups</name> <required>false</required> <rtexprvalue>true</rtexprvalue> </attribute> <attribute> <name>showPortletBreadcrumb</name> <required>false</required> <rtexprvalue>true</rtexprvalue> </attribute> </tag>
所以它的实现在BreadcrumbTag类中,我们跟进到BreadcrumbTag类中,可以发现,真正用来显示的内容的页面在page.jsp中:
private static final String _PAGE = "/html/taglib/ui/breadcrumb/page.jsp";
我们在page.jsp中看到,它先判断layout是否不为null(默认是不为null)的,所以它会去引入display_style_XX.jsp
<c:if test="<%= layout != null %>"> <liferay-util:include page='<%= "/html/taglib/ui/breadcrumb/display_style_" + displayStyle + ".jsp" %>' /> </c:if>
这个XX就是水平或者竖直,对应的XX=horizontal或者vertical.
因为我们例子中这个显示方式是水平的,所以我们最终找到了这个页面,是display_style_horizontal.jsp:
<% StringBundler sb = new StringBundler(); if (showGuestGroup) { _buildGuestGroupBreadcrumb(themeDisplay, sb); } if (showParentGroups) { _buildParentGroupsBreadcrumb(selLayout.getLayoutSet(), portletURL, themeDisplay, sb); } if (showLayout) { _buildLayoutBreadcrumb(selLayout, selLayoutParam, true, portletURL, themeDisplay, sb); } if (showPortletBreadcrumb) { _buildPortletBreadcrumb(request, showCurrentGroup, showCurrentPortlet, themeDisplay, sb); } String breadcrumbString = sb.toString(); if (Validator.isNotNull(breadcrumbString)) { int pos = breadcrumbString.indexOf("<li"); breadcrumbString = StringUtil.insert(breadcrumbString, " class=\"first\"", pos + 3); pos = breadcrumbString.lastIndexOf("<li"); breadcrumbString = StringUtil.insert(breadcrumbString, " class=\"last\"", pos + 3); } %> <ul class="breadcrumbs breadcrumbs-horizontal lfr-component"> <%= breadcrumbString %> </ul>
所以最终显示的导航条是由字符串拼接而成的(breadcrumbString),这样我们就很容易找到了这个"Liferay"的显示是最左边一个,也就是showGuestGroup,见04-06行。所以我们只需要吧showGuestGroup设置为false就达到目的了。
解决方法:
我们只要吧showGuestGroup设置为false,为此在portal-ext.properties中加入一行:
#added by charles to fix the navigation issue ,remove "Liferay" breadcrumb.show.guest.group=false
就大功告成了。
相关文章推荐
- sed-正则表达式-去掉每一行的<>标签
- struts2中如何去掉<s:fielderror>中的<ul><li>样式
- <a>标签用css去掉下划线,并且点击后不变色
- <Java>随意输入字符串,如果含有"$"将该字符及之前一个字符的去掉
- 对于<welcome-file-list>设置主页后无法引用CSS的问题
- 正则表达式去掉 <img>标签
- 程序中所不需要访问到的功能,别忘了从WMAppManifest.xml文件中的<Capabilities>的小节将它们去掉。
- 把token的<>去掉
- 如何去掉友情链接的<li>标签的三种方法
- </s:textfield>去掉自动生成的<tr><td>
- <开发>chrome表单自动填充后,去掉黄色背景
- C#去掉字符串中的<p>标签
- <a>标签去掉下划线,ul去前面的点。
- <Android>彻底去掉导航栏方法
- <Python+Openpyxl>用Openpyxl做两个Excel文件的比对
- <noip>陶陶摘苹果
- <context-param>与<init-param>的区别与作用
- <![CDATA[ ]]>在ibatis 配置文件的使用
- <30天自制操作系统>第五天
- <a>链接四个伪类书写顺序的真正原因