Здравствуйте! Я совсем новичок в java ee, проблема в следующем: в сервлете я передаю атрибут objects, который является коллекцией. Мне нужно сделать меню, чтобы при клике по кнопке подгружалась информация по объекту. В данном примере при выполнении всегда выводится элемент с индексом 0.
Можно ли использовать переменную из JS в jstl? Или может быть посоветуете другой способ, как это лучше реализовать?
<script type = "text/javascript">
function loadInfo(button) {
var index = button.value;
$('.info').remove();
$('.main').append('<div class="info"></div>');
$('.info').append('<c:out value="${objects.get(index).address}" />');
}
</script>
<div class="menu">
<c:forEach var="object" items="${objects}" varStatus="сounter">
<button type="button" class="btn btn-default" value="${сounter.index}" id="objSelect" onclick="loadInfo(this)">${object.name}</button>
</c:forEach>
</div>
<div class="main">
<div class="info"></div>
</div>
Инструкции JSTL выполняются на сервере, инструкции JavaScript на клиенте. Соответственно конструкция
$('.info').append('<c:out value="${objects.get(index).address}" />');
бессмысленна. Можно сделать так:
some_page.jsp
<div class="menu">
<c:forEach var="object" items="${objects}" varStatus="сounter">
<button type="button" class="btn btn-default" id="objSelect${сounter.index}" data-addr="${object.address}">${object.name}</button>
</c:forEach>
</div>
<div class="main">
<div class="info"></div>
</div>
some_script.js
$('.menu button').click(function(event) {
$('.info').html($(this).data('addr'));
});
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Виртуальный выделенный сервер (VDS) становится отличным выбором
NAND: could not create temp file for system NAND disk image: File exists
Пишу код, попал в тупикЕсть код, перебирающий и сравнивающий значения 2 List'ов заполненных объектами класса Action