我正在尝试在我的Web应用程序中使用Spring 3'MVC支持带注释的控制器。
在我的application-context.xml中,我添加了以下内容:
<mvc:annotation-driven />
<context:component-scan base-package="com.abc.def.etc"/>
<bean id="jspViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix" value="/WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"/>
<property name="order" value="1" />
</bean>
我的控制器注释如下:
@Controller
@RequestMapping("/optimizerRules")
public class OptimizerRulesController {
private OptimizerRulesService optimizerRulesService;
private static final Log LOG = LogFactory.getLog(OptimizerRulesController.class);
public OptimizerRulesController()
{
LOG.info("Initializing OptimizerRulesController");
}
@RequestMapping(method = RequestMethod.GET)
public ModelAndView getRuleAttributesAndRules(ModelMap model)
{
LOG.info("Entering getRuleAttributesAndRules method");
}
当我启动我的应用程序时,我可以在我的日志中看到OptimizerRulesController已经初始化。我还可以看到以下内容:
Creating instance of bean 'optimizerRulesController'
Initializing OptimizerRulesController
Mapped URL path [/optimizerRules] onto handler 'optimizerRulesController'
但是,当我使用http://localhost:8080/appName/optimizerRules调用我的应用程序时,出现404错误! 我在这里缺少什么配置?
由于
答案 0 :(得分:1)
Spring MVC通常会记录在WARN级别找不到特定请求的映射。假设您没有在日志中看到这一点并假设已启用WARN,并且由于您没有看到自己的日志语句,听起来您的请求甚至没有达到Spring MVC DispatcherServlet,这可能意味着URL是错。
网址应为http://server:port/war/dispatcherServletMapping/optimizerRules,因此如果我的假设有效,您的web.xml应告诉您缺少的路径组件。