0

これを使用して、アップロードした画像をコントローラーに保存しています

saveImage(context.getRealPath("/resources/image.jpg"), image);

そして、これを使用してJSPに画像をロードしようとしています

<img src="<c:url value="/resources/image.jpg"/>" />

ブラウザのアドレスバーでこれを使用して画像にアクセスできます

home/user/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp1/wtpwebapps/SpringMVCTest/resources/image.jpg

しかし、画像はjspに読み込まれず、リンク画像が壊れているだけです。

<mvc:resources mapping="/resources/**" location="/resources" />また、静的コンテンツの提供にも使用しています。

これが機能しないのはなぜですか?

些細な答え。「/」を見逃したことを除いて、すべて正しかった

<mvc:resources mapping="/resources/**" location="/resources" />

そのはず

<mvc:resources mapping="/resources/**" location="/resources/" />
4

3 に答える 3

0

パス

ホーム/ユーザー/ワークスペース/.metadata/.plugins/org.eclipse.wst.server.core/tmp1/wtpwebapps/SpringMVCTest/resources/image.jpg

サーバーのファイルシステムパスです。クライアントはそれにアクセスできません。

むしろ、画像をパブリックWebエリアに配置し、たとえば相対パスを指定します

/contextofyourweb/images/1.jpeg

または、サーバーファイルシステムからファイルを読み取り、サーブレットの応答に配置するImageServletを作成します

関連している:

于 2012-08-10T07:55:48.090 に答える
0

同じ問題があります。私の要件は、ビュー用の Html5 と Jquery であり、JSP はありません。C で記述されたサーバーをシミュレートする Spring MVC アプリがあります。

私の春のMVC構成:

    <mvc:resources mapping="/resources/**" location="/resources" />

タグを使用できないため、動作する jQuery ソリューションを見つけました。

    $(function(){
        var ctxRoot = window.location.pathname;
        var imgBtn1Url="/"+ctxRoot.split("/")[1]+"/resources/img/glyphs/glyphicons_173_play.png";
        alert(imgBtn1Url)
        $('#imgBtn1').attr('src', imgBtn1Url);
    });

HTML:<img id="imgBtn1" alt="" data-src="holder.js/300x200" class="thumbnail" />

私の場合、Spring Dispatcher Servlet の URL パターンのため、ctxRoot=/viper/config です。あなたの場合、location.pathnameで十分かもしれません。

   <servlet-mapping>
        <servlet-name>conf</servlet-name>
        <url-pattern>/config/*</url-pattern>
   </servlet-mapping>

Spring MVC を使用している他の人が役立つことを願っています。

于 2013-03-14T18:43:14.387 に答える
0

再デプロイすると、抽出されたディレクトリ内のファイルが確実に失われるため、プロジェクト ファイルの外にあるフォルダーにイメージを保存する必要があります。

より良いのは、画像を保存場所に保存することです。パスをデータベースに保存していると確信しています。これらの画像は、展開や webcontent フォルダーのディレクトリから独立している必要があります。

于 2014-02-03T11:39:39.223 に答える