- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
当生成 Excel 工作表时发生错误时,我试图将我的请求转发到错误页面。下面是示例代码。我不确定为什么在抛出异常时它没有被转发到错误页面,它显示空白页面但肯定不会转到我的错误页面。`
@ResourceMapping("xyz")
public void generateExcelExport(ResourceRequest request, ResourceResponse response) {
try {
//Do all the excel related logic
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
response.setProperty("Content-Disposition", "attachment; filename=\"" + XYZ + "\"");
workbook.write(response.getPortletOutputStream());
} catch (Exception e) {
response.setProperty("Content-Disposition", "inline" );
response.setContentType("text/html");
PortletRequestDispatcher dispatcher = request.getPortletSession().getPortletContext().getRequestDispatcher("/WEB-INF/views/html/jsp/error.jsp");
try {
dispatcher.forward(request, response);
} catch (Exception e1) {
log.error("Unable to forward the request from the portlet", e1);
}
} }
最佳答案
我不确定,但我猜你在重定向到错误页面时没有设置任何渲染参数。
试试这个,看看它是否有任何帮助(你可以把它放在 dispatcher 的那一行):
response.setRenderParameter("jspPage", "/WEB-INF/views/html/jsp/error.jsp");
我将这种重定向与 actionResponse 一起使用,但它也应该与 resourceResponse 一起使用...
编辑:资源响应不包含 setRenderParameter 方法,但您可以尝试使用以下方法:
使用 response.createRenderURL()
创建 renderURL。如果使用此 URL 触发请求,它将导致呈现请求/响应(或可以访问该方法的操作请求)。
问题是,您正试图在 Portlet 的资源阶段重定向到另一个页面(在此阶段未调用呈现阶段)。
关于java - 如何使 ResourceResponse 将请求转发到 liferay portlet 中的错误页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17870593/
我需要在 portlet serveResource() 方法的响应中返回一些特殊的拉丁字母(例如 á)。我尝试过以下方法: response.setCharacterEncoding("ISO-88
我正在尝试模拟一个返回 ResourceResponse 的调用,但我无法实例化该类型。是否有可以实例化它的工厂类或其他方式? 编辑 var response = new ResourceRespon
我想通过实现 AbstractResource 使用 Wicket 下载 CSV 文件。它看起来像这样: public class ExportCsvFileResource extends Abst
我正在使用 Microsoft Fakes 单元测试框架来测试一些查询 DocumentDB 数据库的方法。 DocumentClient类有几种用于查询 DocDB 的方法(例如 CreateDoc
我正在使用 Microsoft Fakes 单元测试框架来测试一些查询 DocumentDB 数据库的方法。 DocumentClient类有几种用于查询 DocDB 的方法(例如 CreateDoc
当生成 Excel 工作表时发生错误时,我试图将我的请求转发到错误页面。下面是示例代码。我不确定为什么在抛出异常时它没有被转发到错误页面,它显示空白页面但肯定不会转到我的错误页面。`
我正在使用下面 URL 中提供的代码片段来实例化 ResourceResponse 以进行单元测试模拟目的 https://github.com/Azure/azure-cosmosdb-dotnet
我正在使用下面 URL 中提供的代码片段来实例化 ResourceResponse 以进行单元测试模拟目的 https://github.com/Azure/azure-cosmosdb-dotnet
我是一名优秀的程序员,十分优秀!