2014-03-28 6 views
1

Spring을 사용하여 응용 프로그램을 개발 중입니다. 나는 응용 프로그램을 통해 다른 페이지로 이동합니다. 내 문제는 입니다. ABC.jsp 페이지로 이동하는 경우 문제가됩니다. 브라우저에서는 IP:port/ABC.jsp이 아닌 IP:port/ABC으로 표시되어야합니다.springMVC를 사용하여 브라우저 URL 파일 확장자를 내림

봄에 파일 확장자를 숨기는 메커니즘이 있습니까? 개별적으로 각 JSP를 지정하고자 할 필요가 서블릿 매핑으로

답변

1

내가 틀리지 않고 sping을 사용하고 있습니다. 그래서 컨트롤러 요청 매핑에서 한 가지만 확장을 삭제하고 제어기 설정보기 페이지에서 모델에 드롭 확장을 또한 수행합니다. 상기 방법에

@RequestMapping(value="/login") 
    public ModelAndView login() { 
     return new ModelAndView("login"); 
    } 

것처럼 확장 놓아 내가 확장을 삭제하고있는 모델을 전달시에 로그인으로 제어기를 매핑하고있다. 이 경우 URL에 확장명을 표시하지 않고 컨트롤러로 전달할 수 있습니다.

1

은 다음과 같습니다

<servlet> 
    <servlet-name>search</servlet-name> 
    <jsp-file>/search.jsp</jsp-file> 
</servlet> 
<servlet-mapping> 
    <servlet-name>search</servlet-name> 
    <url-pattern>/search</url-pattern> 
</servlet-mapping> 

모든 JSP를 공통 경로에있는 경우가 쉽다. 예 : /앱/*.

request.getRequestDispatcher("/WEB-INF" + request.getPathInfo() + ".jsp").forward(request, response); 

<servlet> 
    <servlet-name>app</servlet-name> 
    <servlet-class>com.example.FriendlyURLServlet</servlet-class> 
</servlet> 
<servlet-mapping> 
    <servlet-name>app</servlet-name> 
    <url-pattern>/app/*</url-pattern> 
</servlet-mapping> 

이가 직접 요청 할 수 없도록/WEB-INF 폴더에있을 JSP를 가정합니다. 그러면 /WEB-INF/search.jsp가 http://example.com/app/search에 표시됩니다.

+0

Mr.Santino 'Sonny'Corleone 응답에 감사드립니다. 하지만 여기서는 스프링 컨트롤러를 사용하여 ABC.jsp 페이지로 이동합니다. 난 그냥 파일 확장자를 shoowing없이 컨트롤러에서 jsp 페이지로 이동 싶어요. – Ratna

+0

그래서 그냥 /search.jsp <서블릿 매핑> <서블릿 이름> 검색 want..like 무엇에 .jsp로 파일 이름을 매핑 이름> 검색 /검색 ' –

+0

그 말을하는 것입니다. 내 응용 프로그램에서 100 개 이상의 파일을 사용하고 있습니다. 나는 100 개 이상의 파일을 위해 그것을 작성하는 것은 좋은 습관이 아니라고 생각한다. 내가 맞습니까? – Ratna