2016-10-13 2 views
2

JSP로 Spring MVC를 사용하여 이미지를 표시하는 데 어려움을 겪고있다. 나는 다른 유사한 SO 질문이 있다는 것을 알고 있지만, 그 질문들에 대한 대답들 중 어느 것도 작동하지 않는 것 같습니다.JSP를 사용하여 Spring MVC로 이미지를 표시하는 방법

두 개의 Java 파일과 하나의 JSP 파일 만 표시하는 매우 간단한 프로젝트가 있습니다.

<img src="/resources/old.jpeg" alt="Photo of Youthful William" id="pic" /> 
: 여기
@Controller 
public class HomeController { 

@RequestMapping(value="/") 
public ModelAndView test(HttpServletResponse response) throws IOException { 
    return new ModelAndView("home"); 
} 

나는 내 이미지를 표시하려고하고있는 JSP 파일의 라인 : 이것은 내 홈 페이지의 컨트롤러 클래스

@Configuration 
@ComponentScan(basePackages="com.rigatron.rigs4j") 
@EnableWebMvc 
public class MvcConfiguration extends WebMvcConfigurerAdapter{ 

@Bean 
public ViewResolver getViewResolver(){ 
    InternalResourceViewResolver resolver = new InternalResourceViewResolver(); 
    resolver.setPrefix("/WEB-INF/views/"); 
    resolver.setSuffix(".jsp"); 
    return resolver; 
} 

@Override 
public void addResourceHandlers(ResourceHandlerRegistry registry) { 
    registry.addResourceHandler("/resources/**") 
      .addResourceLocations("/resources/"); 
} 

: 이것은 내 WebMvcConfigurerAdapter 클래스입니다

내/resources/폴더에 old.jpeg가 있습니다. 나머지 페이지는 잘 표시되지만 여기에는 대체 텍스트 만 표시됩니다. 그래서

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-war-plugin</artifactId> 
    <configuration> 
    <outputDirectory>C:\my\local\dir\tomcat8\webapps</outputDirectory> 
    </configuration> 
</plugin> 

내가 사용 탐색 할 때 :

내가 Tomcat8를 사용하여이 응용 프로그램을 배포하고, 나는이 줄이는 사본을 Tomcat의 webapps 디렉토리에 생성 된 WAR 파일을 내가 만들 때마다 내 메이븐 POM 파일입니다 내 브라우저 localhost : 8080/myprojectname 나머지 JSP 파일은 올바르게 표시되지만 사진은 대체 텍스트가 아닙니다. 이 문제에 대한 도움을 주시면 감사하겠습니다.

답변

2

좋아, 내가 어디로 잘못 가고 있는지 알았어. 이 SO 포스트는 올바른 방향으로 절 지적 :

Can't display images in JSP

을 그러니까 기본적으로, 내가 대신 내 웹 애플리케이션의 루트 웹 서버의 루트에서 자원을로드하려고했습니다. 그래서 위해 나는이 두 줄에 포함 된 웹 애플리케이션의 루트 참조하기 위해이 JSTL 태그를 사용하려면 ...

<img src="<c:url value='/resources/old.jpeg'/>" alt="Photo of Youthful William" id="pic" /> 

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 

을 나는이 메이븐 의존성을 포함했다 :

<dependency> 
    <groupId>jstl</groupId> 
    <artifactId>jstl</artifactId> 
    <version>1.2</version> 
</dependency> 

나는이 질문을 조기에 게시 한 것에 대해 사과하지만, 다른 사람들에게 도움이되기를 바란다고 생각합니다.

관련 문제