Java 按后缀/文件扩展名的Spring Rest筛选器
我们希望通过SpringBootWebApp交付一些HTML文件以及其他文件。我们希望通过为以.HTML结尾的URI设置一个REST端点来分割HTML和非HTML流量。 我们尝试了类似的方法,但没有成功:(Java 按后缀/文件扩展名的Spring Rest筛选器,java,rest,spring-boot,Java,Rest,Spring Boot,我们希望通过SpringBootWebApp交付一些HTML文件以及其他文件。我们希望通过为以.HTML结尾的URI设置一个REST端点来分割HTML和非HTML流量。 我们尝试了类似的方法,但没有成功:( 不幸的是,上面的代码和其他一些变体不起作用这段代码对我来说效果很好。请注意,出于您的目的,您可以只使用ant模式(而不是真正的regexp) P.S.:也考虑使用POST请求来传递“内容”。 最后,我没有找到原问题的答案,所以我用了这个。 @RequestMapping(value = "*
不幸的是,上面的代码和其他一些变体不起作用这段代码对我来说效果很好。请注意,出于您的目的,您可以只使用ant模式(而不是真正的regexp)
P.S.:也考虑使用POST请求来传递“内容”。
最后,我没有找到原问题的答案,所以我用了这个
。@RequestMapping(value = "**")
为了捕获所有未通过专用映射处理的请求,然后我在普通Java代码中对HTML和非HTML进行了拆分…这就是Spring资源处理的目的,神奇的东西可能应该放在拦截器中(或者是资源链的一部分,取决于神奇之处)。谢谢你的回答。不幸的是,你的解决方案没有按我所需要的方式工作。像
http://localhost:8080/filter-content/test.html
已正确过滤,但当我添加path元素时,它将不再被触发http://localhost:8080/filter-content/somepath/test.html
@RestController
@RequestMapping("filter-content")
public class FilterController {
@PostMapping(value = "*.xml")
public void onlyXml() {
System.out.println("Xml content");
}
@PostMapping(value = "*.html")
public void onlyHtml() {
System.out.println("Html content");
}
@PostMapping(value = "*")
public void otherContent() {
System.out.println("Other content");
}
}
@RequestMapping(value = "**")