Đây có lẽ là câu hỏi thứ 100 về lỗi Spring MVC này, nhưng tôi không thể làm cho nó hoạt động được.Không tìm thấy bản đồ nào cho yêu cầu HTTP (Spring MVC)
Tôi đang cố gắng ánh xạ một phương thức điều khiển đơn giản đến/tài khoản và sau đó tôi muốn thêm/account/{id}, nhưng tôi thậm chí không thể nhận/tài khoản để hoạt động.
Đây là web.xml của tôi
<?xml version="1.0" encoding="ISO-8859-1" ?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
<display-name>My Spring MVC web application</display-name>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>springDispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:application-context.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springDispatcherServlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:application-context.xml</param-value>
</context-param>
</web-app>
Nội dung của ứng dụng context.xml:
<mvc:annotation-driven />
<context:component-scan base-package="org.example" />
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/views/"/>
<property name="suffix" value=".jsp"/>
</bean>
AccountController.java:
@Controller
public class AccountController {
@RequestMapping(value="/account", method = RequestMethod.GET)
public ModelAndView showAccount() throws Exception {
ModelAndView mav = new ModelAndView();
mav.setViewName("account");
mav.addObject("someText", "Hello World!");
return mav;
}
}
src/main/webapps/lượt xem/account.jsp:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<h1>${someText}</h1>
Khi tôi khởi động ứng dụng trong Tomcat, tôi thấy dòng sau xuất hiện trong nhật ký:
[localhost-startStop-1] INFO org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped "{[/account], methods=[GET], params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public org.springframework.web.servlet.ModelAndView org.example.springmvc.controller.AccountController.showAccount() throws java.lang.Exception
Đối với tôi, điều đó cho thấy localhost url: 8080/tài khoản được ánh xạ đúng và ít nhất nên đưa ra một số đầu ra. Nhưng khi tôi truy cập localhost: 8080/tài khoản tôi nhận được lỗi 404 và nhật ký cho biết:
No mapping found for HTTP request with URI [/views/account.jsp] in DispatcherServlet with name 'springDispatcherServlet'
No mapping found for HTTP request with URI [/favicon.ico] in DispatcherServlet with name 'springDispatcherServlet'
Bạn sẽ được nhiều người đánh giá cao.
Vẫn không may mắn tôi sợ. Tôi thấy một số dòng phụ trong nhật ký khi tôi khởi động ứng dụng. đường dẫn URL Mapped [/ tài khoản] vào handler đường dẫn URL Mapped 'accountController' [/account.*] vào handler 'accountController' Mapped đường dẫn URL [/ tài khoản /] vào handler 'accountController' Nhưng khi tôi đi đến/tài khoản trong trình duyệt web của tôi, tôi vẫn nhận được cùng một loại thông báo: Cảnh báo http-apr-8080-exec-3 org.springframework.web.servlet.PageNotFound - Không tìm thấy ánh xạ nào cho yêu cầu HTTP với URI [/ WEB- INF/views/account.jsp] trong DispatcherServlet với tên 'springDispatcherServlet' – Julius
Tôi đã nhận nó hoạt động! Whoohoo! Cuối cùng. Tôi đã thay đổi trong web.xml từ/* sang /. Tôi không hoàn toàn hiểu TẠI SAO nó bây giờ hoạt động, byt ít nhất tôi hạnh phúc lập trình viên. –
Julius
Xin chào @Biju, bạn có thể vui lòng xem http://stackoverflow.com/questions/17697899/how-to-map-dynamic-url-http-127-0-0-18080-prj-noticeopen-2-in -spring-mvc-cont này có chút khác biệt nhưng lạ khi tôi không đạt đến điều khiển –