我遇到了liferay-ui的问题:标签
我需要根据之前点击的链接设置有效标签。我通过String
获取此信息String selectedTab = ParamUtil.getString(request, "valA", "generalSettings");
然后我创建标签:
<liferay-ui:tabs
names="A,B,C,D,E"
tabsValues="valA,valB,valC,valD,valE" refresh="false"
value="<%=selectedTab%>" url="<%=tabURL.toString()%>" param="tab">
<liferay-ui:section>
<%@ include file="a.jsp"%>
</liferay-ui:section>
<liferay-ui:section>
<%@ include file="b.jsp"%>
</liferay-ui:section>
<liferay-ui:section>
<%@ include file="c.jsp"%>
</liferay-ui:section>
<liferay-ui:section>
<%@ include file="d.jsp"%>
</liferay-ui:section>
<liferay-ui:section>
<%@ include file="c.jsp"%>
</liferay-ui:section>
问题是,如果使用值参数,我的标签会一直保持活动状态,但是当我点击其他标签时,我会看到其他导入。
有什么想法吗?
答案 0 :(得分:1)
我试着在这里给你一些提示。我觉得你有两个错别字。
tab
,而不是selectedTab
(如param
属性中所定义),tabsValues
属性中定义)为: valA,valB 等; generalSettings 不存在。试试这一行:
String selectedTab = ParamUtil.getString(request, "tab", "valA");
如果您只想选择第一个标签,则应该足以完全删除value
的{{1}}属性。检查tabs implementation - 当值为null时,它将从请求本身读取参数<liferay-ui:tabs>
,并在没有提供值时默认选择第一个选项卡。
如果tab
设置为false,则不应该刷新页面,这意味着每次单击选项卡都不会初始化refresh
。这是因为所有部分都在页面上进行预渲染,只有Liferay.Portal.Tabs.show为called才能显示已点击的部分并隐藏其他部分。
答案 1 :(得分:0)
通过创建RenderURL并将其绑定到url参数,我找到了答案。我现在唯一的问题是,每当我更改名称和tabValues时,如果它们不同,则不会显示部分内容。