В одном из полей сущности хранится музыкальная композиция (также есть текст и картинка), сущность хранится в базе. Ajax запросом обращаюсь к Spring контролёру, достаю список сущностей из базы и json'ом отправляю на страницу, там прохожу по этому списку, отображаю текст, картинку, а вот с муз.композицией не выходит. В моей реализации каждому объекту отображаемого списка соответствует свой плеер, но это не обязательно, он может быть и один, например вверху страницы, а с помощью jQuery подставлять src соответствующего объекта (так пробовал, результат тот же). В отображаемом на странице списке на долю секунды появляется плеер и исчезает, подскажите, что не так?? Если указать src к файлу на диске, то всё ок, а вот к контролёру не работает(( Сущность
@Entity
@Table
public class Message {
@Id
@GeneratedValue
@Column(name = "id")
private long idMessage;
@Temporal(value = TemporalType.TIMESTAMP)
private Date date = new Date();
private String text;
@Column(columnDefinition = "LONGBLOB")
@Lob
private byte[] img;
private String nameSong;
@Column(columnDefinition = "LONGBLOB")
@Lob
private byte[] song;
Методы контролёра для загрузки сообщений, а так же поиска в базе изображения и муз.композиции
@RequestMapping("/upload/messages")
public void uploadMessages(Model model,
HttpServletResponse response,
@ModelAttribute(value = "date") Date date) {
List<Message> messageList = serviceMessage.findAllMessage(date);// загружаем полный стек сообщений
if (!messageList.isEmpty()) {
date = messageList.get(messageList.size() - 1).getDate();
model.addAttribute("date", date);
}
ObjectMapper mapper = new ObjectMapper();
String json = "";
try {
json = mapper.writeValueAsString(messageList);
response.getWriter().println(json);
} catch (IOException e) {
e.printStackTrace();
}
}
@RequestMapping("/find/img")
public ResponseEntity<byte[]> findImg(HttpServletRequest request) {
long idMessage = Long.parseLong(request.getParameter("idMessage"));
byte[] img = serviceMessage.findImg(idMessage);
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.IMAGE_PNG);
return new ResponseEntity<byte[]>(img, headers, HttpStatus.OK);
}
@RequestMapping("/find/song")
public ResponseEntity<byte[]> findSong(HttpServletRequest request) {
long idMessage = Long.parseLong(request.getParameter("idMessage"));
byte[] song = serviceMessage.findSong(idMessage);
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.ALL);
return new ResponseEntity<byte[]>(song, headers, HttpStatus.OK);
}
Разметка html, использую jsp страницу
...
<div id="messageList">
<%-- Message List... --%>
</div>
...
Код jQuery
function UploadMessage() {
$.ajax({
type: "get",
url: "upload/messages",
dataType: "json",
cache: false
},
success: SuccessUploadMessage
})
}
function SuccessUploadMessage(result) {
$.each(result, function (index, value) {
var txt = value.text;
var img = value.img;
var nameSong = value.nameSong;
if (txt != null || img != null || nameSong != null) {
$("#messageList").prepend("<div id='oneMessage'></div>");// предварительно создаём отдельный блок для каждого сообщения
if (txt != null) {// вставляем текст сообщения
$("#oneMessage").append("<li id='myText' style='display: none'>" + value.text + "</li>");
$("#myText").fadeIn(1500);
}
if (img != null) {// вставка изображения
$("#oneMessage").append("<img id='myImg' src='' style='width: 140px; height: 100px; display: none'>");
$("#myImg").attr("src", "find/img/?idMessage=" + value.idMessage);
$("#myImg").show(800)
}
if (nameSong != null) {// вставляем аудиофайл
$("#oneMessage").append("<audio id='mySong' controls='controls' src=''></audio>");
$("#mySong").attr("src", "find/song/?idMessage" + value.idMessage)
}
$("#messageList").prepend("<br>")
}
});
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Я пытаюсь написать дождь на java, но пока ни как не могу заставить дождинку двигаться:
http://bookboxsgzzz
К примеру, есть страничка в нэте с новостьюВ ней поочередно идут: Название статьи Краткое описание Фотография 1 Еще немного текста Фотография...
Подскажите в чем проблема может быть, карта рассыпалась, по сайту не каких работ и не было, только было просто изменено имя сотрудника в контактах,...