我需要将Spring 3.1 MVC View的渲染输出转换为字符串(用于发送到PDF转换器,或发送到MIME电子邮件等等),并且我一直在使用以下代码:
这被注入Controller
@Autowired
TilesViewResolver viewResolver;
Run Code Online (Sandbox Code Playgroud)
以下辅助方法:
private String renderViewToString(ModelMap map, HttpServletRequest request, HttpServletResponse httpServletResponse, final String viewName) {
final StringWriter html = new StringWriter();
View pdfView = new View() {
@Override
public String getContentType() {
return "application/pdf";
}
@Override
public void render(Map<String, ?> model, HttpServletRequest request, HttpServletResponse response) throws Exception {
HttpServletResponseWrapper wrapper = new HttpServletResponseWrapper(response) {
@Override
public PrintWriter getWriter() throws IOException {
return new PrintWriter(html);
}
};
View realView = viewResolver.resolveViewName(viewName, Locale.US);
Map<String, Object> newModel …Run Code Online (Sandbox Code Playgroud) 我是Spring MVC的新手,但我对它的功能印象深刻.
我正在使用3.1.0-RELEASE,我必须显示PDF以响应表单:表单提交.
这是我在控制器中编写的(小)代码:
@RequestMapping(value = "new_product", method = RequestMethod.POST, params = "print")
@ResponseBody
public void saveAndShowPDF(ModelMap map, ShippingRequestInfo requestInfo, HttpServletRequest request, HttpServletResponse httpServletResponse) throws IOException {
saveProductChanges(map, requestInfo, request, httpServletResponse);
httpServletResponse.setContentType("application/pdf");
byte[] pdfImage = productService.getPDFImage(requestInfo.getRequestId());
httpServletResponse.getOutputStream().write(pdfImage);
}
Run Code Online (Sandbox Code Playgroud)
此代码将PDF byte []发送回原始窗口.
如何让PDF显示在单独的窗口中,以便我仍然可以使用原始浏览器窗口显示其他内容?最好的方法是使用客户端PDF查看程序(Adobe Reader,FoxIt等)显示PDF,但我可以将PDF显示在单独的浏览器窗口中.
编辑: 我决定设置Content-Disposition,以便浏览器显示一个保存/打开框,用户可以打开Adobe(丢失主浏览器页面).
httpServletResponse.setHeader("Content-Disposition","attachment;filename=cool.pdf");
Run Code Online (Sandbox Code Playgroud)
感谢大家!
我正在使用Titanium Alloy 3.0.2 GA(在Mac上)来构建跨平台的移动应用程序
为什么在Titanium Studio 中不显示Resources文件夹,即使它存在于文件系统中?
我想存储一些将在应用程序中显示的图像,我相信我应该将它们存储在Resources文件夹中的某个位置.
当我在Studio中查看Project Explorer时,我看不到/ Resources文件夹.

当我尝试将一个Resources文件夹添加到根目录时,我被告知已经有一个Resources文件夹!

Finder确认有一个Resources文件夹.
那么,如何让Resources文件夹显示在Studio Project Explorer中?
此外,它也没有显示在App Explorer视图中.