Прежде всего в JSP
<%=varName%>
скриптлет означает: изменить строку а) с помощью
varName.toString()
Странно, что вы хотите вывести переменную, имя которой неизвестно.
Это как в Java. Вы бы написали
.
String aVariableString = "test String";
System.out.println(aVariable+"String");
Это не имеет смысла.
Однако я могу представить код, подобный вашему, в зависимости от ситуации:
Если появится хотя бы один раз, я бы сделал следующее:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!-- head, or anything You want -->
<script>
function addBid(){
var bidId = document.getElementById("bidId").value;
// do whatever with bidId
}
</script>
<input type="hidden" id="bidId" value="<c:out value=${containerIndexes[knownIndex]}" />
<custom:tag onclick="addBid();" />
Конечно, обычно нам нужны эти данные в цикле, поэтому код меняется:
<c:forEach var="bid" items="${bids}">
<c:out value=${bid.name} /> <custom:tag onclick="addBid(${bid.index});" />
</c:foreach>
и итерация с именными ставками содержит объекты типа bid, которые по крайней мере имеют
getName()
и
getIndex()
методы.
Если вы хотите добавить в JSP пользовательскую строку, тогда должен работать
<custom:tag onclick="addBid('${bid.index} whatever string you want here');" />
Если мы предположим индекс 12, это выдает что-то вроде:
<whateverCustomTagDoes onClick="addBid('12 whatever string you want here') />
Если вы все еще хотите использовать скриптлет (который не рекомендуется в JSP) с вашим примером, и на самом деле вы намеревались добавить строку к существующему значению (а не создавать переменную на лету, как JavaScript eval-), тогда Ответ может быть:
<custom:tag onclick="addBid('<%=container_index%>string');" />