标签: portlet

如何在Liferay中使用portlet名称获取Portlet Id?

我需要使用portlet名称获取资源权限.

我将使用portlet的名称而不是Id.

portlet的资源许可权名称是该portlet的Id.我检查了Portlet表,它只有Id和其他信息.portlet的其他属性将保存在哪里?

有没有办法通过使用portlet的名称来获取portlet的Id.我有一个workaroud来获取所有portlet并进行比较,但如果我可以使用portlet的名称直接获取portlet的Id,那将会很有帮助.

它的紧急,如果有人知道请回复,这将是非常有帮助的.

提前致谢

portlet liferay liferay-6

9
推荐指数
2
解决办法
2万
查看次数

如何实现JSR规范

我正在考虑实现一个或两个JSR API.我还没有阅读整个规范(计划是在编写实现代码时阅读它们),但我对它们非常熟悉.我已经读过JSR过程包括实现测试兼容性工具包(TCK)来测试所述JSR实现.

在我开始编写一系列单元测试以验证我的实现的正确性/完整性之前,我真的想使用这个TCK,但我不知道它是否适用于我.下载所有文件并在google搜索后,我找不到任何可以定义为给定JSR的TCK的东西.

所以我的问题基本上是:为了生成我自己的JSR规范实现,我需要做哪些步骤,以及如何验证我确实已经这样做了.

对于它的价值,我正在考虑实施JSR-168和JSR-286,但我认为这与这个问题无关.

java portlet jsr168 specifications jsr

8
推荐指数
1
解决办法
1929
查看次数

如何在Liferay portlet中设置Cookie?

我在尝试在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)

java portlet liferay

8
推荐指数
1
解决办法
1万
查看次数

spring-mvc(portlet):如何在打开文件对话框中返回pdf文件?

我在为我@ActionMapping创建一个PDF文件.现在我想知道如何以保存/打开文件对话框的形式将这个pdf返回给用户?如果这一代人成功的话,我更喜欢这个显示下载链接.

我将spring-mvc 3.0.5与portlet结合使用.但是,如果有人有一些正常应用程序的指针,那么我可以从那里弄清楚.对于2.0,我读了一些关于扩展pdfgenerator类并在web.xml中进行修改的内容但是从现在开始我们只需要POJO ....


编辑:Adeel建议后的代码:

File file = new File("C:\\test.pdf");
        response.setContentType("application/pdf");

        try {
            byte[] b = new byte[(int) file.length()];
            OutputStream out = response.getPortletOutputStream();
            out.write(new FileInputStream(file).read(b));
            out.flush();
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return "users/main";
Run Code Online (Sandbox Code Playgroud)

java spring portlet spring-mvc spring-portlet-mvc

8
推荐指数
1
解决办法
2万
查看次数

无法在添加>>更多选项中查看已部署的Liferay portlet

我已经创建了一个示例Liferay portlet,并且已成功部署.但是,eclipse控制台没有说"1 portlet已经可以使用了".而且,我在Liferay页面的Add >> More ..选项中找不到这个portlet.

portlet liferay

8
推荐指数
2
解决办法
7002
查看次数

为不同的liferay portlet开发一个通用的jar库

我需要一些对三个不同的Liferay portlet很常见的实用程序类,所以我将在一个应该为我的portlet共享的项目中开发它们.

我正在使用Eclipse和Liferay IDE插件,我的问题是我需要什么样的项目?

我的意思是它是一个简单的Java项目还是任何一种Liferay项目?

portlet jar liferay

8
推荐指数
1
解决办法
4119
查看次数

自定义taglib未加载Liferay7

我正在将Liferay portlet从6.0迁移到Liferay 7.0,而我遇到的许多障碍之一就是包含了我的自定义taglib.

我遵循以下建议:在Liferay 7中创建自定义taglib,但我的portlet无法加载taglib,记录以下错误:

09:50:48,566 ERROR [http-nio-8080-exec-10][FreeMarkerManager:208] Unable to add taglib my_tags to context
FreeMarker template error:
freemarker.template.TemplateModelException: Error while loading tag library for URI "/META-INF/my_tags.tld" from TLD location "servletContext:/META-INF/my_tags.tld"; see cause exception.
        at freemarker.ext.jsp.TaglibFactory.get(TaglibFactory.java:260)
        at com.liferay.portal.template.freemarker.internal.FreeMarkerManager$TaglibFactoryWrapper.get(FreeMarkerManager.java:647)
        at com.liferay.portal.template.freemarker.internal.FreeMarkerManager.addTaglibSupport(FreeMarkerManager.java:205)
        at com.liferay.taglib.util.ThemeUtil.doIncludeFTL(ThemeUtil.java:276)
        at com.liferay.taglib.util.ThemeUtil.doDispatch(ThemeUtil.java:157)
        at com.liferay.taglib.util.ThemeUtil.includeFTL(ThemeUtil.java:100)
        at com.liferay.taglib.util.ThemeUtil.include(ThemeUtil.java:82)
Run Code Online (Sandbox Code Playgroud)

但是,我的捆绑JAR 确实包含META-INF/my_tags.tld

令我印象深刻的是,当我的JSP加载时,错误不会发生,而是在主题的FreeMarker模板中.显然我的JSP在那时甚至没有被加载.

我的门户网站中的每个页面都会抛出错误,而不仅仅是那些包含我的portlet的页面(如果主题已经无法访问taglib,则会出现这种错误)

捆绑JAR的结构是:

com/
content/  
META-INF/
   +--- resources/
   MANIFEST.MF
   taglib-mappings.properties
   my_tags.tld
OSGI-INF/
WEB-INF/         
Run Code Online (Sandbox Code Playgroud)

由bnd任务生成的MANIFEST.MF包含以下依赖项:

Require-Capability: osgi.extender;osgi.extender="jsp.taglib";uri="/META-INF/my_tags.tld"
Run Code Online (Sandbox Code Playgroud)

该文件taglib-mappings.properties包含:

my_tags=/META-INF/my_tags.tld 
Run Code Online (Sandbox Code Playgroud)

我还尝试将.tld文件放在WEB-INF/tld …

jsp osgi portlet taglib liferay-7

8
推荐指数
1
解决办法
1086
查看次数

Spring portlet mvc:@Valid似乎不起作用

我创建了一个bean类并在我的控制器中使用它,但它似乎不起作用.即使我进入无效年龄,result.hasErrors仍然是假的.

Bean类:

public class User{
    @Min(13)
    private int age;
    private String name;

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getName(){
            return name;
    }

    public void setName(String name){
            this.name = name;
    }   
}
Run Code Online (Sandbox Code Playgroud)

控制器片段:

@ActionMapping(params = "myAction=validateUser")
    public void validateUser(ActionRequest request, ActionResponse response, ModelMap model, @ModelAttribute("user") @Valid User user, BindingResult result ){      

        if(result.hasErrors()){
            for(ObjectError oe : result.getAllErrors()){
                System.out.println(oe.getDefaultMessage());
            }
        } else{
            //code
        }
    }
Run Code Online (Sandbox Code Playgroud)

JSP:

<form:form action="${registerUser}" method="post" …
Run Code Online (Sandbox Code Playgroud)

java validation spring portlet spring-portlet-mvc

7
推荐指数
2
解决办法
1万
查看次数

在Plone中禁用站点范围内的portlet类型

在Plone 4.1中在站点范围内禁用portlet类型的最佳方法是什么?默认设置提供~10个portlet类型,但站点用户只有少数用例(静态文本,新闻).

portlet plone

7
推荐指数
1
解决办法
899
查看次数

Liferay 6.1 - 私有插件安装程序"disapear"或在控制面板中被禁用

我正在开发Liferay 6.1 EE GA3的应用程序.

在控制面板下,我们有一个私有插件安装程序部分,我们可以在其中安装/部署新的portlet.我正在使用面板,该部分工作正常.

然后我尝试安装自定义portlet.由于某种原因安装失败,我从"部署"文件夹中删除了portlet,我甚至重新启动了服务器.这个portlet没有做任何特别的事情,只是针对Liferay的Lucene搜索引擎运行一些自定义查询.

然后,在此过程之后,"服务器>插件安装>私有插件安装程序"部分从我的屏幕"消失".

下面是我在访问"服务器>服务器管理"和"服务器>插件安装"部分时看到的屏幕(您可以看到它显示为空,没有私有插件安装程序的链接):

屏幕截图1:服务器>服务器管理(显示空屏幕)

在此输入图像描述

屏幕截图2:服务器>插件安装(显示空屏幕)

在此输入图像描述

在这个屏幕上,您可以看到我的用户拥有安装插件所需的所有管理权限:

屏幕截图3:我的用户个人资料和权限 在此输入图像描述

在下面的屏幕中,您可以看到私有插件安装程序Hook安装在webapps文件夹中(实际上它已经一直安装),以及其他一些钩子,主题和portlet:

屏幕截图4:Tomcat的webaaps文件夹 在此输入图像描述

以下是/html/portlet/admin/view.jsp和/html/portlet/admin/view.portal.jsp的内容(从代码中删除了初始注释).这些文件未手动编辑.

/html/portlet/admin/view.jsp的内容

<%@ include file="/html/portlet/admin/view.portal.jsp" %>
Run Code Online (Sandbox Code Playgroud)

/html/portlet/admin/view.portal.jsp的内容

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

<c:choose>
    <c:when test="<%= permissionChecker.isOmniadmin() %>">

        <%
        String tabs1 = ParamUtil.getString(request, "tabs1", "server");

        boolean showTabs1 = false;

        if (portletName.equals(PortletKeys.ADMIN_INSTANCE)) {
            tabs1 = "instances";
        }
        else if (portletName.equals(PortletKeys.ADMIN_PLUGINS)) {
            tabs1 = "plugins";
        }
        else if (portletName.equals(PortletKeys.ADMIN_SERVER)) {
            tabs1 = "server";
        }
        else if (portletName.equals(PortletKeys.ADMIN)) {
            showTabs1 = true;
        }

        String tabs2 = ParamUtil.getString(request, "tabs2");
        String tabs3 = …
Run Code Online (Sandbox Code Playgroud)

java portlet liferay

7
推荐指数
1
解决办法
295
查看次数