Spring MVC 프레임 워크로 웹 애플리케이션 개발을 배우려고하고 있는데 컨트롤러 매핑이 어떻게 작동하는지 완전히 알지 못합니다. 설정과 코드를 먼저 표시 한 다음 내가 이해하지 못하는 것을 설명하면 더 낫습니다.Spring 3.2.6을 사용한 핸들러 메소드 매핑
@Controller
@RequestMapping("/main/courses")
public class CourseController {
...
이 컨트롤러에서 문제가되는 방법의 매핑 :
@RequestMapping(value="", method = RequestMethod.GET)
public String getCourses(Model model) {
...
내 컨트롤러 클래스의
<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
매핑 :
여기 내 web.xml에 매핑입니다 보시다시피, value
속성은 빈 따옴표로 설정되어 있으며 이것이이 매핑의 유일한 방법입니다 작동합니다. value
속성을 "/"
으로 변경하면 404 오류가 발생합니다. 이 컨트롤러에서 잘 작동하는 다른 매핑이 있습니다 (예 : value="/add"
). 유일한 문제는이 컨트롤러의 루트에 매핑하려고 할 때입니다.
value=""
은 유효한 값입니까? 왜 value="/"
이 작동하지 않습니까?
(으)로해야합니다. 아무도 비슷한 문제가 없었습니까? –
그래서 http : // localhost : port/context/main/courses가 getCourses()에 매핑되도록 하시겠습니까 ??? requestMapping 어노테이션에서 "Value"속성을 제거하기 만하면, 그 uri에 대한 모든 GET 요청은 getCourses() 메소드에 의해 처리 될 것이다. – M4ver1k