2012-01-13 3 views
2

홈 컨트롤러에 대한 요청 매핑을 시도하고 있습니다. 내 홈 컨트롤러는 방법이 있습니다요청 매핑이 잘못된 점은 무엇입니까?

@RequestMapping(value = "/create", method = RequestMethod.GET) 
public ModelAndView Create(Locale locale, Model model) 
{ 
    return new ModelAndView("create"); 
} 

을 그리고 내 뷰 리졸버는 다음과 같은 방식으로 구성됩니다

<!-- Resolves views selected for rendering by @Controllers to .jsp resources in the /WEB-INF/views directory --> 
<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> 

을 그리고 폴더에 볼 수 있습니다 : 보기/create.jsp

홈 컨트롤러의 하이퍼 링크는 다음 코드로 구성됩니다.

<p><a href = "/create">New topic</a></p> 

하지만 하이퍼 링크를 클릭하면 404 오류가 발생합니다. 당신이 폴더 http://localhost/AppName/에서 서버가 있고

<p><a href = "/create">New topic</a></p> 

을 사용하여 인덱스로 리디렉션하는 경우

+2

서블릿 매핑을 구성하고 요청한 디스패처 –

+0

에 컨트롤러 메서드에 중단 점을 설정하여 컨트롤러 메서드를 찾을 수 없거나 뷰를 찾을 수 없다는 것을 확인 했습니까? – Ralph

+0

Ralph, 중단 점을 설정했습니다. 컨트롤러가 발견되었습니다. 문제는 소스를 찾는 것입니다. – Eugene

답변

3

당신은 http://localhost/create 대신 http://localhost/AppName/create에 도착합니다.

둘째 : 당신이 여기에서 설명하는대로

나는 같은 문제가 없었다 내가 확장자를 가진 뷰를 매핑으로는 빨리, 해결되었다.

그래서 내 경우에는

:

@RequestMapping(value = "/create.html", method = RequestMethod.GET) 
public ModelAndView Create(Locale locale, Model model) 
{ 
    return new ModelAndView("create"); 
} 

및 운영자 서버가 있어야한다 :

<servlet> 
    <servlet-name>SomeServlet</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
    <servlet-name>SomeServlet</servlet-name> 
    <url-pattern>*.html</url-pattern> 
    </servlet-mapping> 

아마 도움이되지 않습니다하지만 단지 그것을 시도를 제공합니다. 왜 그런 일이 일어 났는지 설명 할 수는 없지만 문제가 해결되었습니다.

+0

감사합니다. 하이퍼 링크 오류가 해결되었습니다. 이제 ViewResolver를 – Eugene

+0

대니로 만들려고합니다. 첫 번째 조언이 효과가있는 것 같습니다. AppName은 ** CASE SENSITIVE **입니다. 나는 웹에서 처음으로 그런 것을 본다. – Eugene

관련 문제