2013-05-21 218 views
1

我的问题是,从HttpServletRequest我怎样才能得到一个PortletRequest

获得PortletRequest我把这个句子翻译:

PortletRequest request = (PortletRequest) HttpServletRequest.getAttribute(); 

我应该投入.getAttribute();

当我在IBM的Portlet开发工厂,我用.getAttribute(Constants.PORTLET_REQUEST) 常量合为一体.jar

现在我需要在JSR168Portlet做到这一点还是有另一种方式来获得PortletRequest不使用HttpServletRequest

我希望你能帮助我

回答

0

我假设,因为你有你正在编写一个servlet一个HttpServletRequest和没有PortletRequest。这意味着你不会有PortletRequest。您需要编写Portlet才能获得PortletRequests,在这种情况下,API接口和Portlet容器将提供PortletRequest。

我不知道Portlet Factory的内部如何工作,您需要获得像那样的PortletRequest,但那不是典型的portlet编程。

0

你说你正在制作一个JSR 168 portlet。

在这种情况下,您的portlet类必须实现javax.portlet.Portlet

为了实现该接口您实现:

render(RenderRequest, RenderResponse)

processAction(ActionRequest, ActionResponse)

这些由portlet被称为容器当它决定渲染你的portl或者从您的portlet处理用户操作。

请求对象RenderRequestActionRequestPortletRequest s。所以你直接把它作为一个参数,你不必为它查询某些东西。

+0

好吧,我现在从RenderRequest和ActionRequest的父是PortletRequest,但我怎么得到它。 ActionRequest arequest = new ActionRequest(); 就是这样吗? – EddyR

+0

将它作为第一个参数传递给您的'processAction'方法,该方法由portlet容器调用(您不调用此方法)。 – npskirk

+0

感谢您的帮助!!!!!我做的 – EddyR

2

您可以使用这样的事情:

(PortletRequest) request.getAttribute("javax.portlet.request"); 
(PortletResponse) request.getAttribute("javax.portlet.response"); 

请求和响应的HTTPServletRequestHTTPSevletResponse