我有一个简单的方法在我的 liferay portlet 中接受 PortletResponse 和 PortletRequest
public void remove(PortletResponse response, PortletRequest request) {
}
我想将响应状态设置为 404,就像我可以通过
httpResponse.sendError(HttpServletResponse.SC_BAD_REQUEST)
处理 HttpServletResponse你能告诉我我该怎么做吗?
最佳答案
Portlet Specification 2.0 有什么要说的 - 您只能在处理资源请求时设置响应状态:
这意味着,您可以在提供资源时以这种方式设置响应状态代码:
resourceResponse.setProperty(ResourceResponse.HTTP_STATUS_CODE,
Integer.toString(HttpServletResponse.SC_BAD_REQUEST));
使用 Liferay,您可以获得底层
HttpServletResponse
的实例并在那里设置状态代码。门户将其返回给客户端。这样,您可以为任何门户请求设置响应状态,而不仅仅是资源请求。HttpServletResponse httpServletResponse = PortalUtil.getHttpServletResponse(portletResponse);
httpServletResponse.setStatus(HttpServletResponse.SC_BAD_REQUEST);
但是,在 Olaf Kock 的回答中也解释了这种做法是强烈不鼓励的。查看它以获得更大的图景。
关于Liferay Portlet 响应 : how to set status code?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33624798/