2012-12-11 4 views
1
내가 여기에 스프링 MVC와 응용 프로그램을 개발하고

해결에 도움이 필요하십니까 정적 콘텐츠를 제공에 대한 나의 web.xml을스프링 MVC 3 -의 URL 패턴을 문제

<servlet> 
    <servlet-name>admin</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
</servlet> 

<servlet-mapping> 
    <servlet-name>admin</servlet-name> 
    <url-pattern>/</url-pattern> 
</servlet-mapping> 

, 난에 다음 줄을 추가 내 관리자-servlet.xml에

<context:component-scan base-package="com.prasanna.blog.Server" /> 
<mvc:resources mapping="/resources/**" location="/"/> 

나는 /admin/*

@Controller 
@RequestMapping("/admin/*") 
public class AdminRequests 
에 매핑되는 각각의 예를 adminRequests.java에 대한 특정 URL에 매핑 5 컨트롤러가

그런 다음 특정 URL에 매핑 된 클래스의 메서드가 있습니다. 내가 /app 또는 다른 web.xml에 URL 패턴을 변경할 때 web.xml 파일의 URL 패턴이 / 나누었다로 매핑 할 때

문제는, 내가 404 오류가 발생하고, 내 index.html는없이 제공됩니다 문제.

어디에 문제가 있는지 잘 모르겠습니다. 조언을 부탁하십시오

답변

1

URL 패턴 /을 Spring의 Dispatcher Servlet에 매핑하면 애플리케이션에 대한 모든 요청이 Dispatcher Servlet으로 전달됩니다. 이 경우 <mvc:resources> 태그를 사용하여 정적 리소스를 정의했지만 index.html은 /resources/index.html 및 /index.html로 렌더링되지 않기 때문에 제대로 해석되지 않습니다.

스프링 <servlet-mapping> 전에 web.xml에 <servlet-mapping>을 하나 더 추가 할 것을 제안합니다. 예 :

<servlet-mapping> 
     <servlet-name>default</servlet-name> 
     <url-pattern>/index.html</url-pattern> 
</servlet-mapping> 
<servlet-mapping> 
    <servlet-name>admin</servlet-name> 
    <url-pattern>/</url-pattern> 
</servlet-mapping> 

희망은 당신을 위해 작동합니다.

0

아니요 문제를 해결하지 못했습니다. 그러나 나는 같은 문제와 그 중 하나의 해결책에 대해 토론하는 또 하나의 스레드를 보았다. 나는 스프링 XML에서 <mvc:resources> 라인을 제거하고

<servlet-mapping> 
    <servlet-name>default</servlet-name> 
    <url-pattern>*.html</url-pattern> 
</servlet-mapping> 

<servlet-mapping> 
    <servlet-name>default</servlet-name> 
    <url-pattern>*.js</url-pattern> 
</servlet-mapping> 
<servlet-mapping> 
    <servlet-name>default</servlet-name> 
    <url-pattern>*.css</url-pattern> 
</servlet-mapping> 

지금 내 정적 콘텐츠가 문제없이 제공하는 web.xml에 아래 라인을 추가하지만이 방법을 좋아하지 않는다. 그것은 매우 더러운 해킹처럼 느껴집니다. 이제 이미지를 제공해야한다면 각 이미지 유형에 매핑을 추가해야합니다. 스프링 데이터로 백엔드에서 mongodb를 사용하기 때문에 스프링 버전이 문제인지 여부는 확실하지 않습니다. 스프링 데이터 버전과 mongodb 드라이버에 몇 가지 문제가 있었기 때문에 pom.xml을 설정하는 데 오랜 시간이 걸렸습니다.