如何在 javascript 代码中使用 jsp jstl set 属性
How to use jsp jstl set attribute in javascript code
我在 jsp 页面中使用 boostarp 选项卡。
<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 选项卡处于 onchange 状态时,我们在请求范围上设置一个属性,如下所示
<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 设置值输出为 follow.but 我得到相同的值并且当我滑动 boostrap 选项卡时值没有改变。
<c:out value="${requestScope.coursestype}"/>
简单的答案是否,你不能这样做。
You can get javascript value from JSTL,but you can not get jstl value
set by javascript
javascript
是客户端语言,JSTL
是服务器端语言,在HTTP
中首先我们需要发送请求然后我们可以从服务器接收响应
所以我们不能在没有请求的情况下以服务器语言设置值。
当你查看页面的 html 来源时,你会发现 jstl
值已经计算出来,<c:out value="${requestScope.coursestype}"/>
在你的情况下将变为空
我在 jsp 页面中使用 boostarp 选项卡。
<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 选项卡处于 onchange 状态时,我们在请求范围上设置一个属性,如下所示
<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 设置值输出为 follow.but 我得到相同的值并且当我滑动 boostrap 选项卡时值没有改变。
<c:out value="${requestScope.coursestype}"/>
简单的答案是否,你不能这样做。
You can get javascript value from JSTL,but you can not get jstl value set by javascript
javascript
是客户端语言,JSTL
是服务器端语言,在HTTP
中首先我们需要发送请求然后我们可以从服务器接收响应
所以我们不能在没有请求的情况下以服务器语言设置值。
当你查看页面的 html 来源时,你会发现 jstl
值已经计算出来,<c:out value="${requestScope.coursestype}"/>
在你的情况下将变为空