Как использовать JSTL var в селекторе Jquery - PullRequest
1 голос
/ 19 августа 2011

Я использую следующий селектор Jquery

$("#selectedQuery td input:radio").attr('checked', true);

Где selectedQuery - переменная JSTL, объявленная как

<c:set var="selectedQuery" value="${dataRequestForm.queryMasterId}" />  

Я протестировал селектор с жестко закодированными значениями, и он работает нормально, но безуспешно при использовании с selectedQuery.
Как мы можем использовать JSTL <c:set> var в Jquery? Есть ли работа вокруг?

Ответы [ 3 ]

13 голосов
/ 19 августа 2011

Смешивание кода JSTL с JavaScript может привести к тому, что ваш код станет действительно беспорядочным.Если это неизбежно, все мои переменные JSTL установлены в переменные JavaScript в одном месте:

<c:set var="selectedQuery" value="${dataRequestForm.queryMasterId}" />
<script type="text/javascript">
    //NOTE: we are sure 'selectedQuery' does not contain any double-quotes,
    // but most values will need to be escaped before doing this.
    var selectedQuery = "${selectedQuery}";

    // etc.
</script>

...

<script type="text/javascript">
    $("#" + selectedQuery + " td input:radio").attr('checked', true);
</script>
4 голосов
/ 19 августа 2011

В JSP:

<c:set var="selectedQuery" value="${dataRequestForm.queryMasterId}" />  

<script>
    $("#${selectedQuery} td input:radio").attr('checked', true);
</script>
2 голосов
/ 19 августа 2011

Я делаю такие вещи все время.Анализатор JSP не знает и не заботится о разнице между содержимым тега <script> (с использованием jQuery или нет) и любым другим содержимым на странице JSP.

Это должно работать нормально, если вы делаете:

<c:set var="selectedQuery" value="${dataRequestForm.queryMasterId}" />

...

<script>
    $("#${selectedQuery} td input:radio").attr('checked', true);
</script>

Обратите внимание, что для этого требуется, чтобы элемент <script> с вашим селектором jQuery находился внутри той же области страницы / JSP, что и ваш <c:set>.Если они не находятся в одной области, то, конечно, это не будет работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...