Я передаю параметр с помощью JSTL выражения в функцию JS
<c:if test="${product.inStock==1}">
<a id = "product_'${product.id}'/>" class="btn btn-success btn-lg buy_btn" onclick="javascript:addToCart('${product.id}')"><span class = "glyphicon glyphicon-shopping-cart"></span> Buy </a>
</c:if>
Вот сама функция:
function addToCart (productid) {
$.ajax({
type: "GET",
dataType: "json",
url: "http://" + $(location).attr('host') + "/add-to-cart/" +productid
});
}
Проблема в том, что в моем JSP ${product.id} внутри onclick не возвращает текущее значение поля объекта, а всегда возвращает ноль:
При этом в других частях JSP ${product.id} как и нужно возвращает фактическое значение поля id объекта product. В чем может быть проблема?
Если заменить через консоль 0 на нужное значение поля id, запрос от Ajax попадает в контроллер и тот его правильно обрабатывает. Вопрос в том, почему ${product.id} не хочет передаваться через onclick?
Данное выражение ${product.id} выполняется на сервере. Если оно возвращает там значение то оно должно везде. Убедитесь что у вас установлен JSP двигатель и на странице разрешено использовать EL выражения. То что вы смотрите в браузере - это DOM.
Значение DOM может отличаться от результата, сгенерированного на сервере. Для того, чтобы узнать значение возвращаемое на сервере, вам надо использовать отладчик или можно вывести значение напрямую в out.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости