引导类与Liferay portlet首选项冲突

时间:2015-10-27 12:36:45

标签: css twitter-bootstrap liferay-6 portlet

我很难正确显示我的portlet的首选项(Liferay 6.2.0服务器)。 我想要的就是让右上角的窗口正确显示。

我根据互联网的教程设置了我的Portletpreferences。 如果我单击右上角,单击配置,然后单击设置,我的首选项页面将显示,它可以正常工作。

但是,我的大多数portlet的JSP都使用Bootstrap ......不幸的是,bootstrapp css类和portlet首选项页面(由Liferay设计)之间似乎存在冲突。 因此,如果我单击设置(右上方按钮)到非引导页面,一切正常。 如果我使用bootstrap将其单击到页面中,则不会加载portlet首选项(也不会加载外观和窗口)。

我通过将Bootstrap2.3.2 css和js文件复制到我的portlet项目中的正确目录并将它们包含到jsps中来实现引导程序。

我想花两个小时试图找到导致这个混乱的确切引导类并将它们从引导程序css文件中排除。 但是我因为浏览器缓存/历史问题而放弃了,这些问题一直让我不连贯。

更智能的方法可能是从我的引导程序页面直接调用config jsp(不使用右上角的liferay窗口)。 我可以加载页面,但使用save buton不会保存选项。 我想我需要添加一些额外的代码,这些代码是Liferay在从右/顶窗口调用config jsp时自动生成的。

我的config.jsp如下:

<%@include file="/jsp/include/init.jsp"%>


<liferay-portlet:actionURL portletConfiguration="true"
    var="configurationURL" />

<%  

String value1_cfg = GetterUtil.getString(portletPreferences.getValue("--value1--", ""));
String value2_cfg = GetterUtil.getString(portletPreferences.getValue("value2", ""));
...
%>

<aui:form action="<%= configurationURL %>" method="post" name="fm">
    <aui:input name="<%= Constants.CMD %>" type="hidden"
        value="<%= Constants.UPDATE %>" />

...miscellanous form controls that let users change the options....


    <aui:button-row>
        <aui:button type="submit" />
    </aui:button-row>
</aui:form>

<%!
public boolean checkListSelected(String value, String param){
 if(value.equals(param)) 
     return true;
 else
     return false;
}
%>

有谁知道如何解决这个问题? 我愿意接受任何解决方案: - 更好的导入Bootstrap的方法 - 如果有人知道哪些是搞乱的话,隔离冲突的引导类 - 直接通过config.jsp

设置选项 提前thx。

1 个答案:

答案 0 :(得分:2)

单个portlet永远不应该添加像Bootstrap这样的CSS框架,它设计用于整个页面,因为portlet只负责它自己的小部分,不应该干扰页面上的其他元素。

好消息是:默认的Liferay主题。 AlloyUI已经集成了Bootstrap 2.3.2,因此不需要在portlet中自己包含它。

如果您已经实现了自己的主题,那么您只需要扩展样式经典主题以包含Bootstrap类。