2016-10-13 10 views
2

JSPでSpring MVCを使用して画像を表示するのに苦労しています。私は他の非常によく似たような質問があることを知っていますが、それらの質問に対する答えのどれもうまくいかないようです。JSPを使用してSpring MVCで画像を表示する方法

私は2つのJavaファイルと1つの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があります。ページの残りの部分は正常に表示されますが、代替テキストだけがここに表示されます。

私はTomcat8を使用して、このアプリを展開していますし、私はこの行を持っているが、私のMavenのPOMファイルには、私はそれを構築するたびに、Tomcatのwebappsディレクトリにそのコピーを作成WARファイルです:

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

だから私は使用して移動するとき私のブラウザlocalhost:8080/myprojectname残りのJSPファイルは正しく表示されますが、写真はaltテキストだけではありません。この問題の助けに感謝します。

答えて

2

私が間違っていた場所を把握しました。このSOポストは、正しい方向に私を指摘:

Can't display images in JSP

をので、基本的に、私が代わりに私のWebアプリケーションのルートのウェブサーバーのルートからリソースをロードしようとしていました。だから、私はこの2行に含まWebアプリケーションのルート参照するために:

<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" %> 

を私はこのMavenの依存関係を含める必要がありました。このJSTLタグを使用するには:

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

私はおそらくこの質問を早期投稿することについてお詫びしますが、私はそれが他人を助けることができることを期待してそれを残します。

関連する問題