2016-12-09 6 views
0

残りのAPIから画像が来るhtmlページで背景画像を取得したかったのです。以下は私のcontroller.jsからの私のhtmlコードWebページの背景画像を表示するためのSpring MVCと角度

<img class="background-img" id="container" ng-src="{{::backgroundImgUrl}}"> 

がある私は私の出力は、これが期待されている

<img class="background-img" id="container" ng-src="http://myrestsvc.mydomain.com/api/images/v3/5" src="http://myrestsvc.mydomain.com/api/images/v3/5"> 

、以下のようにする必要があり

var idx = Math.floor(Math.random() * (4 - 1)) + 1; 
      $scope.backgroundImgUrl = "http://myrestsvc.mydomain.com/api/images/v3/" + idx; 

、のようなものを呼び出すことになります動作と私はJavaの開発者ではない、どのように私はこれを達成するためにJavaの残りのAPIのコントローラを記述するのですか?

私はSpring v1.3.3とangularJSを使用しています。前もって感謝します。

提供答えにAditional

答えて

2

This answer may help

: ハンドラメソッドに@RequestMappingに

そして@PathVariableをimage_idは追加が

@ResponseBody 
@RequestMapping(value = "/api/images/v3/{id}", 
     method = RequestMethod.GET, 
     produces = MediaType.IMAGE_JPEG_VALUE) 
public void handler(@PathVariable("id") int imageId){ 
    InputStream in = servletContext.getResourceAsStream("/image"+ imageId +".jpg"); 
    return IOUtils.toByteArray(in); 
} 
+0

パラメータどのように私は、画像を返すのですか?バイト[]として?または応答で?説明していただけますか? – blue

+0

[リンクの提供](http://stackoverflow.com/a/16725508/4366471)をご覧ください。応答を「そのまま」返すには、「@ResponseBody」という注釈を使用します。 byte []を返すには、IOUtils.toByteArray()を使用します。ブラウザに画像があることをヒントするには、 '@ RequestMapping'アノテーションにヘッダーを追加します。 'MediaType.IMAGE_JPEG_VALUE'ヘッダーが追加されます。 –

関連する問題