Olá, depois de codificar o controller e a view a img não é exibida. Segue o controller e o teste na view, lembrando que a img estática aparece, mas a dinâmica não!
<c:choose>
<c:when test="${usuario.avatar.id == null}">
<img src="<c:url value="/global/portraits/usuario.png"/>" alt="..."/>
</c:when>
<c:otherwise>
<img src="<c:url value="/avatar/load/${usuario.avatar.id}"/>" alt="..."/>
</c:otherwise>
</c:choose>
@RequestMapping(value = "/load/{id}", method = RequestMethod.GET)
public ResponseEntity<byte[]> loadAvatar(@PathVariable("id") Long id) {
Avatar avatar = avatarService.findById(id);
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.valueOf(avatar.getTipo()));
InputStream is = new ByteArrayInputStream(avatar.getAvatar());
try {
return new ResponseEntity<byte[]>(IOUtils.toByteArray(is), headers, HttpStatus.OK);
} catch (IOException e) {
LOG.error("Ocorreu um erro ao recuperar o Avatar!", e.getCause());
} finally {
try {
is.close();
} catch (IOException e){
LOG.error("Ocorreu um erro ao fechar o stream dp arquivo!", e.getCause());
}
}
return null;
}