我需要用@RequestMapping(value ="/client")为带注释的控制器中的所有方法映射截取器
映射中有
<mvc:interceptor>
<mvc:mapping path="/app/client/*"/>
<bean class="com.cci.isa.web.CIPClientHandleInterceptor" />
</mvc:interceptor>
这个拦截器非常适合以下url:
1. http://host/app/client/clientUpdateForm?clientId=305
但不调用url,如:
2. http://host/app/client/clientUpdateForm/clientId_305(方法名后面加斜杠)
它是如何被称为第二个变体的?
这个问题太老了,但也许这对某人有所帮助。
你应该试着删除/app
,我认为这是不必要的,也许这是导致问题的原因。
<mvc:mapping path="/client/**"/>
我想这会达到你想要的效果:
<mvc:mapping path="/app/client/**/*"/>
'/**'表示任意数量的目录。当它与'/*'一起使用时,您可以查看任意文件夹深度,并使用任意文件名。
如果你的控制器带有
@RequestMapping(value = "/client")
试
<mvc:mapping path="/client**"/>
尝试上述建议,但将注释更改为
@RequestMapping(value = "/client*")
虽然我将为这两个URI模式中的每一个使用两个方法,并将它们传递给一个公共方法来做"事情"…
@RequestMapping(value = "/app/client/clientUpdateFormat/{clientId}", method = RequestMethod.GET)
public String doItOne(@PathVariable("clientId") String clientId) {
doItCommon(clientId);
和
@RequestMapping(value = "/app/client/clientUpdateFormat", method = RequestMethod.GET)
public String doItTwo(@RequestParam("clientId") String clientId) {
doItCommon(clientId);
我的问题是,我们使用自定义RequestMappingHandlerMapping
<bean name="handlerMapping"
class="utils.web.versioning.MobileVersionRewritingMappingHandler">
<property name="order" value="0"/>
<property name="interceptors">
<list>
...
</list>
</property>
</bean>
CORS或任何其他MVC属性的XML或代码配置不会影响自定义处理程序映射。我可以为自定义处理程序映射指定cors配置,但我更喜欢删除遗留配置,并使用它来配置拦截器:
<mvc:interceptors>
...
</mvc:interceptors>
现在cors正在工作,我正在使用XML全局cors配置