2013-01-01 6 views
0

Spring MVC에서 약간의 문제가 있습니다. 내 앱에서 사용자 데이터를 수정하고 싶습니다. 그래서 listWorkers, redirectWorker 및 editWorker 메소드가있는 컨트롤러를 편집했습니다.Spring MVC에서 매핑 요청하기

@RequestMapping("/print") 
public String listWorkers(Model model) 
{ 
    model.addAttribute("workerList", workerService.getAllWorkers()); 
    return "print"; 
} 

@RequestMapping("/edit") 
public String redirectWorker(HttpServletRequest request) 
{ 
    String parameter = request.getParameter("workers"); 
    String path = "redirect:/edit/" + parameter; 
    return path; 
} 

    @RequestMapping("/edit/{worker}") 
public String editWorker(@PathVariable("worker") 
String login, Model model) 
{ 
    model.addAttribute("worker", workerService.getWorker(login)); 
    return "edition"; 
} 

리소스 및 이미지 폴더에 문제가 있습니다. 예를 들어, print 메소드를 사용하면 좋지만 editWorker 메소드를 사용하려고하면 로고와 CSS 파일이로드되지 않습니다. 나는이 같은 URL을

<resources mapping="/resources/**" location="/resources/" /> 
<resources mapping="/images/**" location="/images/" /> 

I 인쇄 방법을 사용하고 있습니다 : 나는 서블릿 컨텍스트 파일에서이 폴더에 대한 요청 매핑이

http://localhost:8080/WWP/print 

을 나는 이미지와 스타일을 볼 수 있습니다.

http://localhost:8080/WWP/edit/caro 

을 그리고이 방법으로 나는 이미지와 스타일을 볼 수 없습니다 : 내 특정 사용자에 편집 방법을 사용하고 때 는하지만이 같은 URL이 있습니다. 나는 경고를 가지고있다 :

WARN : org.springframework.web.servlet.PageNotFound - No mapping found for HTTP request with URI [/WWP/edit/resources/images/logo.png] in DispatcherServlet with name 'appServlet' 
WARN : org.springframework.web.servlet.PageNotFound - No mapping found for HTTP request with URI [/WWP/edit/resources/styles/menu.css] in DispatcherServlet with name 'appServlet' 

나는 이미지 파일과 스타일 카탈로그를 webapp 폴더에 직접 가지고있다 (나는 Maven을 사용하고 있기 때문에). 이전에 작동하지만, 내가 /*/*과 같은 것을 사용하면 작동하지 않습니다. 내 서블릿 컨텍스트 파일에서 맵핑에 문제가 있다고 생각합니다.

<img src="resources/images/logo.png"> 
<link rel="stylesheet" href="resources/styles/menu.css" type="text/css"></link> 

감사를 사전에 도움을 : 나는 '

이처럼 내 CSS와 이미지 파일을로드 해요.

답변

3

상대 경로는 사용하지 마십시오. 대신 절대 경로를 사용

<img src="<c:url value='/resources/images/logo.png'/>"> 
<link rel="stylesheet" href="<c:url value='/resources/styles/menu.css'/>" type="text/css"></link> 

JSTL<c:url> 태그는 컨텍스트 경로가 value 속성의 인수로 전달 된 절대 경로 앞에 추가됩니다 확인합니다, 그래서 당신의 웹 애플리케이션이 http://localhost:8080/WWP에 배포 된 경우, 생성 된 HTML 코드가 될 것입니다 앵커하는 HREF 양식 작업 등 답장을 보내

+0

감사가 작동을 :)하지만 또 다른 홍보가 :

<img src="/WWP/resources/images/logo.png"> <link rel="stylesheet" href="/WWP/resources/styles/menu.css" type="text/css"></link> 

<c:url> 태그는 다른 모든 URL에 사용한다 그 후 oblem. 내가 말했듯이, 내가 말했듯이, 나는 다음과 같은 URL을 가지고있다 : http : // localhost : 8080/WWP/edit/caro,하지만 "/ developer"로 리다이렉트하는 버튼을 다시 클릭하면 지금 가지고 있습니다 : http : // localhost : 8080/WWP/edit/developer. 그 URL 대신에 http : // localhost : 8080/WWP/developer와 같은 것을 가지고 싶습니다.이 URL에 내 앱이 올바르게 작동합니다. 컨트롤러에서 요청 매핑을 변경하여 원하는대로 리디렉션하는 방법은 무엇입니까? – caro

+0

나는이 문제를 정말로 이해하지 못한다. 관련 질문을하면서 다른 질문을하십시오. –