我正在使用Spring WebFlow / JSF web-app。我需要开发管理面板,管理员可以使用这些文件作为片段上传一些文件并构建页面内容。我希望我描述得很好。为此,我创建了Spring MVC控制器,其映射如下所示。它从数据库输出文件(图像,.xhtml)。如何使用该控制器在页面源上包含文件?
@RequestMapping("/file")
public void getFileContent(@RequestParam("id") Integer id, HttpServletResponse response) throws IOException {
File f = fileDAO.get(id);
response.setContentType(f.getMime());
IOUtils.write(f.getData(), response.getOutputStream());
}
这不起作用:
<ui:include src="#{request.contextPath}/app/file?id=6" />
答案 0 :(得分:0)
JSF / Facelets包括运行服务器端,而不是客户端。 <ui:include>
接受服务器端路径,而不是Web URL。 Spring侦听客户端(HTTP)请求,而不是像JSF那样侦听服务器端资源解析。
您最好的选择是使用自定义Facelets ResourceResolver
来检查传入路径,将文件存储在临时存储中并返回其URL
返回,或只是为了替换HTML <ui:include>
<iframe>
,因为您似乎想要使用Spring。
<iframe src="#{request.contextPath}/app/file?id=6"></iframe>