我正在为我的liferay主题编写速度模板,我想知道是否可以在速度模板中创建一个新对象.
原因是在liferay中没有在上下文中注册的contextTool,我真的希望能够在给定时间检查模板中存在的变量.有一个很酷的宏,但不幸的是它使用了contexttool.
我想做点什么:
#set($contextTool = new ContextTool())
Run Code Online (Sandbox Code Playgroud)
另一种解决方案是随生命线主题提供的java代码,该主题能够在模板上下文中添加内容.但我不知道这是怎么回事...... ;-)
我使用Liferay 6.1,我创建了我的主题(sample-theme),我想要添加jQuery.我怎样才能做到这一点?
为什么我有文件夹:sample-theme并且liferay-work都有文件夹:css,js,templates?
我创建了文件夹_diffs和子文件夹,js然后复制jQuery并添加portal_normal.vm:
<script src="/html/js/jquery/jquery-1.8.2.min.js"></script>
Run Code Online (Sandbox Code Playgroud)
我没有看到任何变化,为什么?我怎样才能添加jQuery?不仅是单个portlet,而且是所有人.
我没有文件夹docroot我使用Maven并且在src/main/webapp中我创建了文件夹_diffs和文件夹js,在那里我添加了jquery.js并在_diffs中创建了模板文件夹并粘贴:
<script src="$javascript_folder/jquery-1.8.2.min.js"></script>
Run Code Online (Sandbox Code Playgroud)
但仍然是错的.也许文件夹_diffs应该在另一个地方?什么应该是maven项目的结构?
我正在为liferay开发一个主题,但是liferay缓存系统并没有让我看到变化.如何禁用liferay js和css缓存?
PS:我正在使用Liferay版本5.1.1
我在尝试在Liferay 6.0 portlet中设置会话cookie时遇到问题.我希望能够将cookie设置到客户端浏览器以存储用于linkedin身份验证的应用程序密钥,然后可以由其他portlet检索它.
我可以通过以下方式阅读cookie:
public void addLinkedInCV(ActionRequest request, ActionResponse response)
throws PortalException, SystemException {
HttpServletRequest convertReq = PortalUtil.getHttpServletRequest(request);
Cookie[] cookies = convertReq.getCookies();
...
}
Run Code Online (Sandbox Code Playgroud)
这是我尝试阅读一个失败的尝试.
@Override
public void doView(RenderRequest renderRequest,RenderResponse renderResponse) throws IOException, PortletException {
HttpServletResponse convertRes = PortalUtil.getHttpServletResponse(renderResponse);
HttpServletResponse originalRes = (HttpServletResponse) ((HttpServletResponseWrapper) convertRes).getResponse();
Cookie linkedInCookie = new Cookie("linkedIn", util.getAppKey());
originalRes.addCookie(linkedInCookie);
}
Run Code Online (Sandbox Code Playgroud) 我发现Liferay以某种"浓缩"的方式传输我的JSP代码 - 将大部分文本放在几行很长的行中.
这使得调试javascript变得不舒服.
是否可以暂时关闭此功能?
我想自定义Liferay 6.0.6 mechanizm以获取更新密码.
在我们的项目中,我们决定自己管理用户,因此我们将所有数据(如用户名和密码)保存在我们的数据库中.我们不想使用Liferay的数据库,但似乎Liferay正在为自己维护它并且无论如何都要使用它.结果我们在两个地方都有用户密码,我们必须关心数据同步.
使用portal-ext.property中的auth.pipeline可以轻松自定义身份验证机制.
现在,当用户通过MyAccount portlet更改密码时,我想调用我的自定义方法.我需要捕获用户在portlet中键入的当前和新密码.
我没有看到更新密码事件的任何门户网站属性.我已经尝试编写一个自定义UserLocalService的钩子插件,但到目前为止还没有成功.是否有可能用钩子做到这一点?
任何帮助,将不胜感激.提前致谢.
我已经创建了一个示例Liferay portlet,并且已成功部署.但是,eclipse控制台没有说"1 portlet已经可以使用了".而且,我在Liferay页面的Add >> More ..选项中找不到这个portlet.
例如,何时使用
GetterUtil.getBoolean()
Run Code Online (Sandbox Code Playgroud)
什么时候
ParamUtil.getBoolean()?
Run Code Online (Sandbox Code Playgroud)
两者是相同的,还是根据参数,变量等预期使用不同?你能举两个例子吗?
从6.1迁移后,我们正面临着liferay 6.2的性能问题.
几乎所有我们的自定义以及liferay的插件portlet都在响应very slow for non admin users.
我们观察到权限检查似乎需要花费大量时间.以下查询被打了这么多次......
(
SELECT DISTINCT Group_.groupId AS groupId
,REPLACE(Group_.NAME, ' LFR_ORGANIZATION', '') AS groupName
,Group_.type_ AS groupType
,Group_.friendlyURL AS groupFriendlyURL
FROM Group_
INNER JOIN Users_Groups ON (Users_Groups.groupId = Group_.groupId)
WHERE (Group_.liveGroupId = 0)
AND (Group_.active_ = 1)
AND (Group_.liveGroupId = 0)
AND (Users_Groups.userId = 3391488)
AND (Group_.companyId = 10132)
AND (
Group_.classNameId = 10012
OR Group_.classNameId = 10024
)
AND (Group_.parentGroupId != - 1)
AND (Group_.liveGroupId = 0)
AND (Group_.NAME != …Run Code Online (Sandbox Code Playgroud) Primefaces Dialog Framework打开相同的portlet页面而不是必需的页面.
<p:commandButton value="Dialog" process="@this" icon="ui-icon-extlink" actionListener="#{controller.viewDialog}" />
Run Code Online (Sandbox Code Playgroud)
豆:
public void viewDialog() {
Map<String,Object> options = new HashMap<String, Object>();
options.put("modal", true);
options.put("draggable", false);
options.put("resizable", true);
options.put("contentHeight", 320);
RequestContext.getCurrentInstance().openDialog("viewDialog", options, null);
Run Code Online (Sandbox Code Playgroud)
viewDialog.xhtml:
<f:view xmlns="http://www.w3.org/1999/xhtml"
xmlns:c="http://java.sun.com/jsp/jstl/core"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui"
xmlns:portlet="http://java.sun.com/portlet_2_0">
<h:head />
<h:body styleClass="jsf2-portlet">
<f:event type="preRenderView" listener="#{dialog.initController}" />
</h:body>
Run Code Online (Sandbox Code Playgroud)