我有一个非常标准的 Spring 3.0.7 web 应用程序
结构是这样的
WebContent/
resources/
myStaticConent/
WEB-INF/
views/
myProtectedContent/
我正在使用<mvc:resources>
静态内容的配置,我的控制器使用来自 WEB-INF/views 的 InternalViewResolver 获取视图
现在我需要从 WEB-INF 中的受保护目录中返回非 JSP 内容(JPG、PNG、HTML 等)
因此,用户可能会输入一个类似 http:myWebApp/myProtectedContent 的 URL 并点击我的受保护内容控制器。
@Controller
public class HelloWorldController {
@RequestMapping(value="/myProtectedContent")
public String index() {
return "myjpg.jpg";
}
}
本质上,我想像视图一样有条件地提供文件。任何人都知道如何做到这一点?
我在这里查看了其他一些方法,使用 Inputstream 的流式处理对于本质上是静态的文件来说似乎有点过分了。我可以注册另一个“视图”类型吗?我需要它像标准的 http 请求响应(如当前视图实现)一样出现 l(从 Web 浏览器端)。
我真的很想避免发明自己的文件处理方法,除非有某种原因为什么使用文件访问方法比使用 Springs “其他”视图解析器(如 ResourceBundleResolver)更好
因此,要求是从 WEB-INF 内部有条件地响应具有可变文件类型(jpg、png、html)的 http 请求,而不用包装在 jsp 中或让文件由 JSTL 视图解释。文件的名称是已知的和静态的。控制器将根据自己的业务逻辑确定文件名。