Как использовать JSP JSTL установить атрибут в коде JavaScript - PullRequest
0 голосов
/ 02 июля 2018

я использую вкладку boostarp на странице jsp.

<ul class="nav nav-tabs" id="courseSearchTabs">
                <li role="presentation">
                    <a id="stark" data-toggle="tab" href="#filter">${messages.all_courses}</a>
                </li>
                <li role="presentation">
                    <a id="he" data-toggle="tab" href="#isbn">${messages.custom_courses}</a>
                </li>
    </ul>


    <div class="tab-content">
        <div id="filter" class="tab-pane fade in active">
          <h3>HOME</h3>
          <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
        </div>
        <div id="isbn" class="tab-pane fade">
          <h3>Menu 1</h3>
          <p>Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
        </div>

    </div>

когда вкладка boostrap включена, мы устанавливаем атрибут в области запроса следующим образом

 <script>

    $('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
        var tab = $(e.target);
        var contentId = tab.attr("id");

        if(contentId == 'stark') {
            <c:set var="coursestype" value="stark" scope="request"/>

        }else if(contentId == 'he') {
            <c:set var="coursestype" value="he" scope="request"/>

        }

    });

</script>

затем я пытаюсь вывести значение JSTL, установленное следующим образом. Но я получаю то же значение, и значение не меняется, когда я пролистываю вкладки boostrap.

 <c:out value="${requestScope.coursestype}"/>

1 Ответ

0 голосов
/ 02 июля 2018

Простой ответ: НЕТ , вы не можете сделать это так.

Вы можете получить значение javascript из JSTL, но вы не можете получить значение jstl устанавливается javascript

javascript - это язык на стороне клиента, а JSTL - это язык на стороне сервера, в HTTP сначала нам нужно отправить запрос, затем мы можем получить ответ от сервера. Поэтому мы не можем установить значение на языке сервера без запроса.

Когда вы проверите html-источник вашей страницы, вы обнаружите, что значение jstl уже рассчитано и <c:out value="${requestScope.coursestype}"/> станет пустым в вашем случае

...