使用Servlet中的session属性为JSP中的标记设置class属性

时间:2013-04-04 06:13:49

标签: html jsp servlets

如果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

enter image description here

它显示了页面中的代码,所以它不接受它。我该如何解决?

1 个答案:

答案 0 :(得分:1)

我认为你没有正确设置class属性...... LI标签的class属性是selectDataloadType [space] active,所以最终它只是selectDataloadType我认为...

为什么不能这样:

<li id="fromDB" <c:if test="${activeTab == 'fromDatabase'}">class="active"</c:if>...

如果您在某种情况下需要一个类attruibute,则可以使用choose代替if ...

相关问题