portlet API deos不提供对封闭的servlet请求和响应对象的任何引用。我知道它不是与用户交互的首选模型,但删除所有访问权限似乎很严重。
我理解,对于与用户进行portlet驱动的交互,您希望使用portlet URL,并让portlet容器管理所有复杂性。
但是,如果您有许多基本上显示相同数据变体的portlet,那么他们能够使用封闭请求来驱动数据是有意义的。
我们最终使用Liferay特定的调用来获取请求,这一切似乎都按照我们的意愿工作。
然而我确实感到内疚。
所以我的问题是,是否存在禁止的潜在深层原因,还是只是强制作者对API环境的看法?
答案 0 :(得分:3)
portlet不会直接进入 Servlet容器,而是称为 Portlet容器。
您应该能够访问相应的信息PortletRequest
,PortletResponse
和PortletContext
。
原因是同一个portlet的两个实例可以在同一个页面中彼此相邻地运行,但仍然与自己的生命周期隔离。门户网站将为您透明地“复用”,它将从servlet世界转换为portlet世界。 Portlet桥也可用于开发具有非portlet技术的portlet(例如JSF)。我同意所有这些通常(非常)复杂使用(因为有许多框架和实现可用),但是当你从概念上考虑它是如何工作时,它是quite nice。
具体细节取决于您选择开发portlet的技术。但我觉得应该有一种方法可以使用portlet API做你想做的事情。