Я пытаюсь работать с переменной JSTL, которую мне нужно изменить. Вот пример моего кода, который демонстрирует проблему:
<script type="text/javascript">
console.log("${pathClienteId}");
console.log("${fn:replace(pathClienteId, '[', '_')}");
console.log("${fn:replace('forms[0].cliente.id', '[', '_')}");
</script>
Это печатает следующий результат:
forms[0].cliente.id
forms[0].cliente.id
forms_0].cliente.id
, что означает, что по какой-то причине, если я попытаюсь заменить, используя мой Переменная JSTL, моя квадратная скобка не распознается, но если я набираю ту же самую строку вручную, она отлично работает. Вот как создается моя переменная pathClienteId:
<c:forEach var="expedienteMini" items="${expedienteForm.forms}" varStatus="status">
...
<c:set scope="request" var="modelExpediente" value="forms[${status.index}].model"/>
...
<c:set var="pathClienteId" value="${fn:replace(modelExpediente, 'model', 'cliente.id')}" />
...
/* Here goes my code */
...
</c:forEach>
Редактировать: Кстати, если я попытаюсь заменить '.' вместо '[', по какой-то причине, он работает отлично.
Это абсолютно бессмысленно, и я уже потратил столько времени на это. Кто-нибудь знает, почему это может происходить?