问题标签 [portlet]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
2866 浏览

java - portlet 2.0 (jsr286) 使用 spring 开发

我们正在讨论从liferay 安装上的普通portlet 开发切换到基于spring webmvc portlet 的开发是否是一个好主意。

我们即将开始开发一些 portlet,所以现在是时候了。但是我看到的问题是我们想使用一些portlet 2.0 特性,这些特性不适用于早于spring 3.0 的版本。(对?)

有没有人知道,是否值得等待?(3.0 什么时候安排?)目前的里程碑足够稳定吗?

我们的第一个真正的版本将在今年的最后一个季度发布,所以 springsource 的人还有一些时间来完成一个决赛...... ;-)

有任何想法吗?

更新

因此,Spring 3 已经发布,它支持我们需要的所有 JSR286 特性。(我认为这是对 JSR286 功能的非常完整的支持)

我看到的唯一缺点是文档在注释方面没有跟上速度。

0 投票
1 回答
3395 浏览

java - 简单的portlet jsp页面流问题

我是 Java portlet 的新手,我试图在一个相当基本的级别上了解这些东西是如何工作的。

我现在对如何在我的 portlet 中拥有多个“视图”感到困惑。假设我的 portlet 将用于 CRUD 操作。为简单起见,我设想当用户第一次查看 portlet 时,他们将看到一个包含数据库中所有记录的表。然后,用户可能能够单击一条记录,该记录将在 portlet 中显示一个新页面,其中包含用于更新记录的表单。添加记录的工作方式大致相同。这里没有什么令人震惊的...

我在哪里控制用户在不同视图之间导航的方式,以及在哪里切换用户可能执行的不同操作(更新、添加、删除等)?

我在网上查找了很多“hello world”portlet 教程,但没有多大帮助。我发现许多其他教程更高级,更适合我正在做的事情,但它们似乎都使用了一些底层框架,如 Struts、JSF 等。

我想知道如何仅使用一个基本的 portlet 来完成这项工作,该 portlet 使用 JSP 来呈现视图。

0 投票
3 回答
2562 浏览

java - Displaytag 库 - 检测分页请求

我目前正在为 Liferay 开发一个 portlet(使用 Spring MVC 框架)。现在,我刚刚使用 displaytag 库在我在 portlet 上显示的列表上实现分页。

我现在的问题是,我需要检测当前请求是否已由 displaytag 库的分页控件启动。我发现在进行分页时,在 URL 中添加了一个参数,看起来像“d-4157739-p=2”,表示当前显示的页面。所以我可以做

..如果 isPagingRequest (我可以将其更改为布尔值)有一个值,则该请求已由 displaytag 分页发起。然而,这是非常糟糕的编码,所以我想避免它。此外,“d”和“p”之间的数字各不相同,这使得它很难被发现。

有人建议我如何检测当前请求是否是由寻呼引起的?

非常感谢

0 投票
4 回答
2036 浏览

java - 如何实现 JSR 规范

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

在我开始编写一堆单元测试来验证我的实现的正确性/完整性之前,我真的很想使用这个 TCK,但我不知道它是否可供我使用。下载所有文件并四处搜索后,我找不到任何可以定义为给定 JSR 的 TCK 的内容。

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

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

0 投票
2 回答
1856 浏览

java - 门户/portlets 编程 - portlet 链接/页面流

我正在编写我的第一个基于 portlet 的应用程序(对于 liferay,但解决方案应该与容器无关),我想知道人们如何解决向用户提供“引导”到不同 portlet 的链接(可能在门户中的不同“页面”上) )。

虽然您可以轻松地在您的 portlet 中拥有不同的视图模式,但是您如何链接到另一个 portlet 并且(也许)还传递参数?

我不是在谈论portlet 之间的简单通信,我感兴趣的是真正的页面流。

示例:您的页面 A 带有一个显示新闻项目列表的 portlet。然后你有页面B,它的配置方式我想显示一个新闻项目(例如它周围的不同portlet)

是否有一个通用的解决方案来链接到页面 B 并告诉 news-Detail-Portlet 它应该显示项目 XYZ?

快速而肮脏的解决方案是通过 news-list-portlet 的编辑模式配置目标链接。但这有几个缺点: - 复杂的 portlet 可能有多个目标 URL,这会导致门户管理员的大量配置工作 - url 可能不遵循允许简单参数注入的方案

我想到了一个解决方案,但这需要付出巨大的努力,并且可能需要对目标 portlet 进行更改,如果您使用 3rd 方 portlet,这并不总是可行的。

我的解决方案如下所示:(草稿!)

Portlet 使用其 Portlet ID 在中央服务上注册,当 Portlet 想要链接到 Portlet 时,它可以根据符号名称进行查找。这将减轻管理员的痛苦,因为可以“自动发现”portlet。该服务还可以提供 UI 以根据源和目标 portlet 连接 portlet。

可以更改的 portlet 的 URL 生成可以通过对 portlet 的服务调用来解决,该 portlet 使用注入的参数生成整个 URL 并返回它。对于您无法更改的 portlet,您必须附加参数并希望它能够正常工作。:-/

有什么建议么?有更简单的解决方案吗?现有的解决方案?

谢谢!

帕特里克

0 投票
3 回答
5368 浏览

spring - 使用验证器在 Spring SimpleFormController 上保留请求参数

我希望我能正确解释这一点。我正在使用 Spring 为 Liferay 开发一个 portlet。这是一个插板系统。所以我有一个视图(Jsp),它显示了某个 pinboard 条目的详细信息,给定了它的 id。此外,还有一个指向 AddCommentController 的链接,用于向用户当前正在观看的 pinboard 条目添加新评论。AddCommentController 扩展了 Spring 的 SimpleFormController 并且还附加了一个验证器:

验证器非常简单,如下所示:

现在用户可以输入评论的视图有两个按钮,保存和取消。这是相应网址的两个生成器。

在 AddCommentController 的 onSubmitAction 中,我读出了参数(参见上面的第一个 actionURL)并将其传递给 pinboard 条目详细视图中的 ActionResponse st,我可以再次加载条目并显示它。

这一切都很好,除非发生验证错误。在这种情况下,我从 URL 中丢失了“pinboardEntryId”参数,并且我没有任何方法可以在 CommentValidator 中读取该参数以再次将其传递给响应,因为我没有任何 PortletRequest 或响应。

现在我通过将 id 存储在会话中并从那里检索它来解决这个问题。但是,我想问一下你们中的一些人是否有无需使用会话的替代解决方案。我很确定有一个。

谢谢,
朱里

0 投票
1 回答
2059 浏览

oracle - JSF Faces Bridge get java.lang.NullPointerException when deploying to oc4j container

I am running JDeveloper 10.1.3.4 with the webcenter pre-configured oc4j. I'm trying to portletize a vanilla JSF webcenter project.

  1. I create a application using the webcenter application template.
  2. Add a JSF JSP, simple called it index with all the default values.
  3. Add a deployment profile and deploy to local oc4j
  4. navigate to the jsf page and everything works.
  5. right click on ViewController and add the library Portlet Faces Bridge
  6. right click on ViewController and add a Portlet Deployment descriptor.
  7. Edit portlet.xml with the values from link text

  8. in portlet.xml i replace the Default page view with my /index.jspx

    when i try to deploy to local oc4j i get the follow

---- Deployment started. ---- May 1, 2009 2:29:37 PM Target platform is Standalone OC4J 10g 10.1.3 (localAppServer). Wrote WAR file to C:\jdevstudio10134\jdev\mywork\test\ViewController\deploy\webapp2.war Wrote EAR file to C:\jdevstudio10134\jdev\mywork\test\ViewController\deploy\webapp2.ear Backing up generic archive file :/C:/jdevstudio10134/jdev/mywork/test/ViewController/deploy/webapp2_generic.ear Creating WSDLs for the WSRP Application WSDLs for the WSRP Application have been created Uploading file webapp2.ear ... Uploading file webapp2.ear ... Application Deployer for webapp2 STARTS. Copy the archive to C:\jdevstudio10134\j2ee\home\applications\webapp2.ear Initialize C:\jdevstudio10134\j2ee\home\applications\webapp2.ear begins... Unpacking webapp2.ear Done unpacking webapp2.ear Unpacking webapp2.war Done unpacking webapp2.war Initialize C:\jdevstudio10134\j2ee\home\applications\webapp2.ear ends... Starting application : webapp2 Initializing ClassLoader(s) application : webapp2 is in failed state Operation failed with error: java.lang.NullPointerException

Deployment failed Elapsed time for deployment: 3 seconds

Deployment incomplete. #### May 1, 2009 2:29:40 PM

if i deploy the WAR file by hand and navigate to the page i get 500 internal server error.

09/05/01 14:49:21.984 webapp2: Servlet error java.lang.NullPointerException at com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:346) at com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:152) at oracle.portlet.server.bridges.jsf.PortletViewHandlerImpl.renderView(PortletViewHandlerImpl.java:73) at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:107) at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:268) at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:137) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:214) at com.evermind[Oracle Containers for J2EE 10g (10.1.3.4.0) ].server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher .java:713) at com.evermind[Oracle Containers for J2EE 10g (10.1.3.4.0) ].server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher .java:370) at com.evermind[Oracle Containers for J2EE 10g (10.1.3.4.0) ].server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler .java:871) at com.evermind[Oracle Containers for J2EE 10g (10.1.3.4.0) ].server.http.HttpRequestHandler.processRequest(HttpRequestHandler .java:453) at com.evermind[Oracle Containers for J2EE 10g (10.1.3.4.0) ].server.http.HttpRequestHandler.serveOneRequest(HttpRequestHandler .java:221) at com.evermind[Oracle Containers for J2EE 10g (10.1.3.4.0) ].server.http.HttpRequestHandler.run(HttpRequestHandler.java:122) at com.evermind[Oracle Containers for J2EE 10g (10.1.3.4.0) ].server.http.HttpRequestHandler.run(HttpRequestHandler.java:111) at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260) at com.evermind[Oracle Containers for J2EE 10g (10.1.3.4.0) ].util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor .java:303) at java.lang.Thread.run(Thread.java:595)

My portlet.xml file looks like

...if i delete the file and redeploy the jspx page works fine.

0 投票
3 回答
2064 浏览

java - 是否可以在单独的 war 文件中创建可动态插入的 GWT 小部件/portlet?

是否可以在 GWT 中创建可以动态加载并添加到 GWT Web 应用程序的小部件/portlet,以及 GWT 小部件可以驻留在单独的 war 文件中的位置?

为了澄清我的问题:符合 JSR168/JSR286 的门户可以在单独的项目(war 文件)中创建 portlet 并将它们动态加载到门户页面中。假设您想在 GWT 应用程序中做类似的事情。因此,假设我们为 GUI 创建了一个仅使用 GWT 的门户(没有 JSP 等),并且我们希望动态添加一个用纯 GWT 编写的“portlet”。那可能吗?

我可以想象它可以使用 IFrame 来完成,但如果这样的 GWT 小部件/portlet 完全成为 GWT 主机“门户”应用程序的一部分并共享它的样式表和其他资源,那就更好了。

0 投票
8 回答
13355 浏览

java - 为 Liferay 开发 portlet 的限制/缺点

我正在考虑将应用程序开发为 portlet,以集成到 Liferay 门户中。与使用 Spring 框架开发普通 Web 应用程序相比,开发此类应用程序是否有任何明显的缺点或限制?

Liferay 似乎要求所有内容都作为portlet 添加。我考虑的另一个选择是仅将 Liferay 用于应用程序的某些部分,并添加到其他自开发内容的外部链接,作为普通 Web 应用程序开发。但是,这将需要多种用户身份验证机制以及 Liferay 和其他 Web 应用程序之间的某种跨站点身份验证。

最好的方法是什么?

0 投票
3 回答
3114 浏览

portlet - Liferay-ui:图标本地化

我目前正在为 Liferay 门户开发一个 portlet。我liferay-ui:icon在我的 JSP 代码中使用了已经支持许多不同语言的本地化的结构。但是我现在发现了一个似乎没有本地化的条目:

所有其他的工作,但"add_article"没有。有人可以帮助我吗?我知道应该有不同语言的“Language.properties”文件,并且应该有一个条目action.ADD_ARTICLE=<the localized text>。有人可以提示我如何解决这个问题吗?

\EDIT: 我刚刚在portal-impl.jar 中找到了相应的Language.properties 文件。该条目action.ADD_ARTICLE在那里并且正确本地化,但它仍然没有在 UI 上显示本地化?

谢谢