我制作了一个非常简单的 Spring MVC 应用程序来学习 AOP,但每次我尝试导航任何应用程序页面时,都会收到(未找到映射)错误,如下所示:
No mapping found for HTTP request with URI [/TestAOP/page1.htm] in DispatcherServlet with name 'appServlet'
我仔细检查了 web.xml、servlet-context.xml、 Controller 代码,但没有发现任何错误。因此,如果有人可以查看我的 web.xml、servlet-context.xml 和 Controller 的内容,并让我知道我在这里缺少什么以及如何克服这个错误,我将非常感激。感谢您的宝贵时间
Web.xml
<context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/spring/root-context.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <servlet> <servlet-name>appServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>appServlet</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
servlet-context.xml
<annotation-driven /> <context:component-scan base-package="com.sampledomain.app.controller" /> <aop:aspectj-autoproxy/> <resources mapping="/resources/**" location="/resources/" /> <beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <beans:property name="prefix" value="/WEB-INF/views/" /> <beans:property name="suffix" value=".jsp" /> </beans:bean>
Controller
@Controller public class HomeController { @RequestMapping(value = "/page1", method = RequestMethod.GET) public String firstPage(HttpServletRequest request,Locale locale, Model model) { Date date = new Date(); DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, locale); String formattedDate = dateFormat.format(date); model.addAttribute("serverTime", formattedDate ); return "page01"; } }
根上下文.xml 主要是空的
注意:page01.jsp位于/WEB-INF/views/文件夹下
最佳答案
我建议仔细检查 Controller 是否由 spring 实例化。最简单的方法是使用 sysout(“我的 Controller 已被实例化!!!”) 或其他内容创建一个空构造函数,然后让我们看看该行是否在 catalina.out 中。看看是否
<context:component-scan base-package="com.sampledomain.app.controller" />
这是您 Controller 的正确包。如果您的 Controller 不是由 spring 实例化的,请仔细检查 spring 配置路径等。
关于java - Spring MVC 找不到映射错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20869803/