如果JSP中的标记中某些条件为真,如何设置类属性? 在我的JSP页面中,我有一些标签。在第一个选项卡中,我有一个表单字段,在提交之后,它将调用servlet,处理它然后它将转发到同一个JSP页面并设置会话属性值(比如下一个Tab的id)在 LI 标签的JSP页面中,如果从session属性获取的字符串是某个值,我将class属性设置为active。 但是我无法得到它。
这是servlet代码的一部分
String dataloadType=request.getParameter("dataloadType");
if(dataloadType.equals("fromDB"))
{
request.setAttribute("activeTab", "fromDatabase");
RequestDispatcher rd=request.getRequestDispatcher("index.jsp");
rd.forward(request, response);
}
index.jsp
的一部分是
<div class="navbar btn-navbar">
<div id="tabs" class="tabbable">
<ul id="myTab" class="nav nav-tabs">
<li><a href="#datacollector" target="main"
data-toggle="tab">Data Collector</a></li>
<li id="fromDB" class="selectDataloadType <c:if test="${activeTab == 'fromDatabase'}">active</c:if>" style="display: none;"><a
href="#fromDatabase" target="main" data-toggle="tab">Data Load
Database</a></li>
<li id="fromFile" class="selectDataloadType" style="display: none;"><a
href="#fromFiles" target="main" data-toggle="tab">Data Load
File</a></li>
<li id="email" class="selectDataloadType" style="display: none;"><a
href="#fromEmail" target="main" data-toggle="tab">Data Load
Email</a></li>
<li id="webServices" class="selectDataloadType"
style="display: none;"><a href="#fromWebServices"
target="main" data-toggle="tab">Data Load Web</a></li>
<li><a href="#datamap" target="main" data-toggle="tab">Data
Map</a></li>
<li><a href="#schedule" target="main" data-toggle="tab">Schedule</a></li>
</ul>
id fromDB 的LI 如果会话属性为'fromDatabase',则将class属性设置为活动但是它不起作用,因为它没有将该部分作为代码。 这是index.jsp
它显示了页面中的代码,所以它不接受它。我该如何解决?
答案 0 :(得分:1)
我认为你没有正确设置class属性...... LI标签的class属性是selectDataloadType [space] active
,所以最终它只是selectDataloadType
我认为...
为什么不能这样:
<li id="fromDB" <c:if test="${activeTab == 'fromDatabase'}">class="active"</c:if>...
如果您在某种情况下需要一个类attruibute,则可以使用choose
代替if
...