bootstrap 类 与 Liferay portlet 首选项冲突
bootstrap classes conflicting with Liferay portlet preferences
我在正确显示我的 portlet 首选项(Liferay 6.2.0 服务器)时遇到困难。
我只想要右上角 window 可以正确显示。
我已经根据互联网教程设置了我的 Portlet 首选项。
如果我点击右上角,点击配置,然后设置,就会显示我的首选项页面,它工作正常。
然而,我的 portlet 的大部分 JSP 使用 Bootstrap... 不幸的是,bootstrapp css [=47= 之间似乎存在冲突]es 和 portlet 首选项页面(由 Liferay 设计)。
因此,如果我单击设置(右上角按钮)进入非 bootstrap 页面,一切正常。
如果我使用 bootstrap 单击它进入页面,则不会加载 portlet 首选项(也不会加载外观 window)。
我通过将 Bootstrap2.3.2 css 和 js 文件复制到我的 portlet 项目中的适当目录并将它们包含到 jsps 中来实现 bootstrap .
我考虑过花 2 个小时试图找到导致此混乱的确切 bootstrap class(es) 并将它们从 bootstrap css 文件中排除。
但我放弃了,因为浏览器 cache/history 问题导致我一直 return 结果不连贯。
一种更智能的方法可能是从我的 bootstrap 页面直接调用配置 jsp(不使用右上角的 liferay window)。
我可以加载页面,但使用保存按钮不会保存选项。
我想我需要添加一些额外的代码,这些代码是在从 right/top window.
调用配置 jsp 时由 Liferay 自动生成的
我的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
- 隔离冲突的 bootstrap classes 如果有人知道哪些是混乱的
- 直接通过 config.jsp
设置选项
提前致谢。
单个 portlet 永远不应添加像 Bootstrap 这样的 CSS 框架,该框架旨在为整个页面工作,因为 portlet 只负责自己的一小部分,不应干扰页面上的其他元素。
好消息是: 默认的 Liferay 主题分别是。 AlloyUI 已集成 Bootstrap 2.3.2,因此无需将其包含在您的 portlet 中。
如果您已经实现了自己的主题,那么您只需要扩展 styled 或 classic 主题以获得 Bootstrap 类 包括在内。
我在正确显示我的 portlet 首选项(Liferay 6.2.0 服务器)时遇到困难。 我只想要右上角 window 可以正确显示。
我已经根据互联网教程设置了我的 Portlet 首选项。 如果我点击右上角,点击配置,然后设置,就会显示我的首选项页面,它工作正常。
然而,我的 portlet 的大部分 JSP 使用 Bootstrap... 不幸的是,bootstrapp css [=47= 之间似乎存在冲突]es 和 portlet 首选项页面(由 Liferay 设计)。 因此,如果我单击设置(右上角按钮)进入非 bootstrap 页面,一切正常。 如果我使用 bootstrap 单击它进入页面,则不会加载 portlet 首选项(也不会加载外观 window)。
我通过将 Bootstrap2.3.2 css 和 js 文件复制到我的 portlet 项目中的适当目录并将它们包含到 jsps 中来实现 bootstrap .
我考虑过花 2 个小时试图找到导致此混乱的确切 bootstrap class(es) 并将它们从 bootstrap css 文件中排除。 但我放弃了,因为浏览器 cache/history 问题导致我一直 return 结果不连贯。
一种更智能的方法可能是从我的 bootstrap 页面直接调用配置 jsp(不使用右上角的 liferay window)。 我可以加载页面,但使用保存按钮不会保存选项。 我想我需要添加一些额外的代码,这些代码是在从 right/top window.
调用配置 jsp 时由 Liferay 自动生成的我的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 - 隔离冲突的 bootstrap classes 如果有人知道哪些是混乱的 - 直接通过 config.jsp
设置选项提前致谢。
单个 portlet 永远不应添加像 Bootstrap 这样的 CSS 框架,该框架旨在为整个页面工作,因为 portlet 只负责自己的一小部分,不应干扰页面上的其他元素。
好消息是: 默认的 Liferay 主题分别是。 AlloyUI 已集成 Bootstrap 2.3.2,因此无需将其包含在您的 portlet 中。
如果您已经实现了自己的主题,那么您只需要扩展 styled 或 classic 主题以获得 Bootstrap 类 包括在内。