2015-12-11 34 views
-2
@RequestMapping("/form") 
public String formForCreate(Model model) { 
log("Action 'formForCreate'"); 
} 

上述请求映射命中两次。我怎样才能阻止这一点?Spring MVC Controller中的请求映射击中两次

+0

你如何测量它击中两次?这不就是你的日志记录的错误配置(登录两次)。 –

+2

分享一些更多的代码,错误消息,控制台输出... – Jan

+0

问题需要一些细节。当然你不是说过两次吗?也许它重新加载页面?也许该页面加载为默认并重新加载时,你去到Url? –

回答

0

您可以检查的一件事是如果您的应用程序上下文扫描控制器组件被加载两次。例如,在你的web xml中,你将你的web.xml中的调度器servlet配置为命名为dispatcher,并且你配置了contextConfigLocation来加载下面的bean配置文件。

<context-param> 
<param-name>contextConfigLocation</param-name> 
<param-value>classpath*:dispatcher-servlet.xml</param-value> 
</context-param> 

这可以在控制器结果得到每个请求监守的调度员的servlet两次击中时的调度的servlet启动另一次当的ContextLoaderListener启动时自动加载一次。

+0

Abdelhak是正确的。检查服务器加载时您的RequestMappings是否已初始化两次。这可能是错误配置的结果,其中您加载所有的bean两次(例如,两个应用程序上下文)。 – Schaka

+0

控制器不会被击中两次。如果有两个bean注册了相同的类型,它们会有相同的@ @ RequestMapping,并且Spring MVC会抱怨重复的映射和崩溃@Schaka。 Spring仅对每个请求使用一个处理程序。 –