作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个类似于下面示例的 Controller uri 层次结构。
@RequestMapping(value="company/{id}")
public abstract class BaseCompanyController
{
// variety of helper methods, protected autowired objects
}
@Controller
@RequestMapping(value = "company/{id}/documents")
public class DocumentsController extends BaseCompanyController
{
// document controller methods
@RequestMapping(value="something",.... etc)
public void doSomething(){}
}
@Controller
@RequestMapping(value = "company/{id}/financials")
public class FinancialsController extends BaseCompanyController
{
// financials controllers methods
}
我想做的是定义一些代码在任何子 Controller 中的任何处理程序方法之前执行。例如,我想在对 DocumentsController 调用 doSomething 方法之前运行一些代码。我想做的事情对于特定的 URI 层次结构是唯一的。
如果我使用拦截器在处理程序方法之前执行,我如何从 URI 中提取 URI 参数,例如来自/company/{id} 的公司 ID?我真的不想手动删除 URL 吗?
是否可以使用/company/{id} 之类的 URI 缩小拦截器的范围?拦截器映射是否理解 URI 模板?
最佳答案
您可以使用 <mvc:mapping/>
仅对某些 URI 使用拦截器和 path
每个属性:
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/company/*/documents" />
<bean class="com.mypackage.DocumentsInterceptor" />
</mvc:interceptor>
</mvc:interceptors>
引用 here .
关于spring - 如何在 Spring MVC 拦截器中使用 URI 模板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11479434/
我是一名优秀的程序员,十分优秀!