我需要使用@RequestMapping(value =“/ client”)为注释控制器中的所有方法映射拦截器
在映射中我有
<mvc:interceptor>
<mvc:mapping path="/app/client/*"/>
<bean class="com.cci.isa.web.CIPClientHandleInterceptor" />
</mvc:interceptor>
这个拦截器完全适用于网址,如: 1. http://host/app/client/clientUpdateForm?clientId=305
但不要求网址如下:
2. http://host/app/client/clientUpdateForm/clientId_305(方法名称后带斜线)
如何获得第二个变种?
非常感谢。
答案 0 :(得分:5)
这个问题太老了,但这可能对某人有所帮助。
您应该尝试删除/app
,我认为没有必要,也许这会导致问题。
<mvc:mapping path="/client/**"/>
答案 1 :(得分:1)
我认为这将实现您的目标:
<mvc:mapping path="/app/client/**/*"/>
'/ **'表示任意数量的目录。当它与'/ *'一起使用时,你会看到一个任意文件夹深度的文件名。
答案 2 :(得分:1)
如果你的控制器有
@RequestMapping(value = "/client")
尝试
<mvc:mapping path="/client**"/>
答案 3 :(得分:0)
尝试上述建议,但将注释更改为
@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);
答案 4 :(得分:0)
我的问题是,我们使用自定义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配置。