Tag: portlet

一个Portlet内的多个页面

我很好奇是否有人知道单个portlet是否可能包含多个页面,让我们说JSP页面。 此外,是否可以链接到同一个portlet中的这些不同页面? 例如。 假设我有一个portlet。 在这个portlet中,我希望初始视图是一个JSP页面,它只有5个链接到5个不同的JSP页面。 当用户单击这5个链接中的一个时,它会将相应的JSP页面加载到portlet中。 最终目标基本上是一个包含在portlet中的小型迷你网站。 现在,我明白这可能不是portlet的最佳用法,但是为了我正在开发的项目,我仍然想知道它是否可行。 谢谢!

Maven在添加依赖项时复制JAR

我目前正在使用IBM Rational Application Development(IBM Eclipse发行版)进行Portlet开发,并且在Maven集成方面存在一个小问题。 这是情况: 1)IBM RAD能够直接从内部部署Portlet(RUN / DEBUG) 在这种情况下,我根本不使用Maven生成的WAR,因为IBM RAD似乎自动创建了WAR并将其推送到IBM WebSphere Portal。 到目前为止,这不是什么大问题。 2)Maven依赖项不会复制到WebContent / WEB-INF / lib目录 IBM有自己的目录结构:WebContent / WEB-INF和WebContent / META-INF。 如果我更新pom.xml以包含新的依赖项,那些JARS将不会被复制到WebContent / WEB-INF / lib目录,因此当我想要运行/调试portlet时,这些库将不会包含在内。 题: 有没有办法在我更新pom.xml后立即将新JAR自动复制到WebContent / WEB-INF / lib文件夹? (如果是这样,那应该是哪个生命周期?) 如果问题#1没有完美的解决方案,我不介意这个步骤是否包含在“mvn install”编译/目标中。 不希望使用ant-task,而是使用maven自己的复制实用程序(如果存在)。 如果有人建议如何集成Maven和IBM RAD以进行WebSphere Portlet开发,请随意添加更多答案。 谢谢

Spring portlet @ActionMapping用法

可以请任何人解释,如何正确映射POST请求? 从API文档中不清楚。 应使用action参数javax.portlet.action的值指定value @ActionMapping(value = “addDocOrder”) public void addDocOrder(@ModelAttribute(“order”)……. 接下来我们有“params”(JAVADOC:映射请求的参数,缩小主映射。) @ActionMapping(params = “action=addDocOrder”) public void addDocOrder(@ModelAttribute(“order”)……. 注释的value()参数的JAVADOC:根据Portlet 2.0“javax.portlet.action”参数的操作名称。 如果未指定,则该方法将用作默认处理程序:即,对于未找到特定操作映射的操作请求。 请注意,所有这些带注释的操作方法仅适用于包含处理程序类的@RequestMapping约束。 我绝对不知道“值”注释参数存在的意义。 在那里没有任何意义……它意味着主要的映射,仲裁次要的,但{params =“action = addOrder”}使“价值”多余。 请看:这个问题也是相关的https://stackoverflow.com/questions/4782971/handling-ajax-requests-with-spring-portlet

Liferay Portlet基本MVC流程和视图选择

我正在尝试使用LifeRay 6.1开发一个基本的portlet。 我非常精通各种MVC实现,但我发现Liferay / java portlet有点令人困惑 – 特别是执行管道。 对于大多数MVC框架我使用的前提是简单的请求>路由器>控制器>视图。 视图选择通常基于控制器/操作命名约定,与请求一起传入的参数或在控制器操作中手动加载的参数。 使用LifeRay MVCPortlet它不会像这样工作; 可以生成至少两种类型的URL – 呈现URL和动作URL。 渲染URL似乎完全绕过了我认为是控制器 – MVCPortlet的子类。 似乎这些url相对容易生成并且请求加载了预期的视图,如果你可以调用它,考虑到所有意图和目的它完全绕过控制器并且与模型无关。 操作URL通过控制器,操作被调用,然后默认视图用于呈现portlet,无论我作为mvc路径提供什么。 通过类树读取我可以看到一个属性用于定义根据portlet模式使用的视图。 即 this.viewTemplate = “/views/edit.jsp”; this.editTemplate = “/views/edit.jsp”; 再次在init()之后设置它只在没有通过actionURL访问时似乎有任何影响。 所以我想我的问题非常基本,如何选择视图以及如何选择通过actionURL时使用的视图。 此外,执行管道的任何大纲都会非常有用

Liferay多对多关系引发类强制exception

我正在创建一个展示liferay中关系的例子。我正在以书籍实体和作者的身份进行多对多的关系。我正在下面的博客中创建这个例子。 http://www.liferaysavvy.com/2014/01/liferay-service-builder-many-to-many_12.html 但是我遇到了类强制转换exception的问题。在博客中也有人写过,它正在抛出类强制转换exception。 11:05:00,422 ERROR [RuntimePageImpl-2][render_portlet_jsp:132] null java.lang.ClassCastException: com.ds.portlet.library.model.impl.AuthorImpl cannot be cast to com.ds.portlet.library.model.Author at com.ds.portlet.library.service.persistence.AuthorPersistenceImpl.fetchByPrimaryKey(AuthorPersistenceImpl.java:691) at com.ds.portlet.library.service.persistence.AuthorPersistenceImpl.findByPrimaryKey(AuthorPersistenceImpl.java:653) at com.ds.portlet.library.service.persistence.AuthorPersistenceImpl.findByPrimaryKey(AuthorPersistenceImpl.java:59) at com.liferay.portal.dao.shard.advice.ShardPersistenceAdvice.invoke(ShardPersistenceAdvice.java:54) at com.liferay.portal.service.persistence.impl.TableMapperImpl.getBaseModels(TableMapperImpl.java:400) at com.liferay.portal.service.persistence.impl.TableMapperImpl.getRightBaseModels(TableMapperImpl.java:265) at com.ds.portlet.library.service.persistence.BookPersistenceImpl.getAuthors(BookPersistenceImpl.java:1183) at com.ds.portlet.library.service.persistence.BookPersistenceImpl.getAuthors(BookPersistenceImpl.java:1162) at com.ds.portlet.library.service.persistence.BookPersistenceImpl.getAuthors(BookPersistenceImpl.java:1143) at com.liferay.portal.dao.shard.advice.ShardPersistenceAdvice.invoke(ShardPersistenceAdvice.java:54) at com.ds.portlet.library.service.base.AuthorLocalServiceBaseImpl.getBookAuthors(AuthorLocalServiceBaseImpl.java:374) at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:115) at com.liferay.portal.spring.transaction.DefaultTransactionExecutor.execute(DefaultTransactionExecutor.java:62) at com.liferay.portal.spring.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:51) at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:111) at com.liferay.portal.spring.aop.ServiceBeanAopProxy.invoke(ServiceBeanAopProxy.java:175) at com.ds.portlet.library.service.AuthorLocalServiceUtil.getBookAuthors(AuthorLocalServiceUtil.java:321) at org.apache.jsp.view_jsp._jspService(view_jsp.java:420) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) at javax.servlet.http.HttpServlet.service(HttpServlet.java:728) 我想知道这背后的原因。

PortalUtil.getOriginalServletRequest和PortalUtil.getHttpServletRequest有什么区别?

我想知道它们之间的区别 PortalUtil.getOriginalServletRequest(portletRequest) 和 PortalUtil.getHttpServletRequest(portletRequest).

在谷歌应用引擎上像冥王星或jetspeed一样的Portlet容器?

我正在尝试在谷歌应用引擎上构建一些“portlet服务器”。 (作为开源) 我想使用JSR168 / 286标准,但我认为应用引擎的限制将使它介于棘手和不可能之间。 有没有人试图运行jetspeed或在谷歌应用引擎内部使用pluto的应用程序? 基于我目前对portlet和谷歌应用程序引擎的了解,我预计会出现以下问题: 从部署的角度来看,带有portlet的war文件或多或少是一个完整的webapp(是的,我知道没有门户服务器它不会真正起作用)。 war文件可能包含它自己的web.xml等。这使得在app引擎上的部署相当困难,因为应用程序彼此不可见,因此所有包含存档的portlet都需要包含在已部署的“app”的war文件中基于引擎的门户服务器“。 “portlet”(至少在liferay中)作为永久servlet进程启动,基于它们的portlet.xmls和web.xmls,它们位于加载的每个portlet存档的相同位置。 我认为这可能在应用程序引擎中存在问题,因为所有内容都在一个大的“Web应用程序”中,因此从每个存档访问portlet.xmls可能会很棘手。 在我看来,这可以防止100%的兼容性。 在这里有人对portlet和app引擎的组合有任何经验吗? 你认为修改jetspeed,pluto或任何其他portlet容器以便能够在app引擎上运行它是否可行?

如何在liferay门户中显示错误消息?

如何在liferay门户中显示错误消息? 我在liferay.com网站上看到,对于显示错误消息,我可以使用liferay-ui:来自标记库的错误标记,但它不起作用,如何使用它?

如何将Portlet部署到Liferay?

我在尝试将新portlet安装到在Glassfish域上运行的Liferay时遇到了问题。 我最近想出了这个流程,并希望与其他人分享。 所以,请阅读答案,希望这有助于某人:) (问题的先决条件是我知道在Glassfish上运行的项目是使用autodeploy文件夹完成的,但是在Liferay上显示它们是另一个故事。)