2013-04-03 53 views
1

在我的JSP頁面中,我有一些選項卡。每個選項卡包含一些表單字段。當我點擊提交按鈕時,它會調用一個servlet。在處理完servlet之後,有沒有辦法從servlet中獲得下一個選項卡?轉發到java servlet的選項卡

這裏是我的index.jsp代碼標籤和第一個選項卡

<div class="span12"> 
     <div class="navbar btn-navbar"> 
      <div id="tabs" class="tabbable"> 
       <ul id="myTab" class="nav nav-tabs"> 
        <li class="active"><a href="#datacollector" target="main" 
         data-toggle="tab">Data Collector</a></li> 
        <li id="fromDB" class="selectDataloadType" 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> 
       <br> <br> <br> <br> <br> 
       <div id="myTabContent" class="tab-content"> 
        <div class="tab-pane fade in active" id="datacollector"> 
         <div class="container"> 
          <div class="row"> 
           <div class="span8"> 
            <form name="selectType" action="selectType" method="get"> 
             <fieldset> 
              <label class="control-label" for="dataloadType">Data 
               load Type:</label> <select id="dataloadType" name="dataloadType"> 
               <option>Choose Data load Type</option> 
               <option value="fromDB">From Database</option> 
               <option value="fromFile">From File</option> 
               <option value="email">E-mail</option> 
               <option value="webServices">Web Services</option> 
              </select> 
              <p> 
               <button type="submit" class="btn btn-success">Submit</button> 
              </p> 
             </fieldset> 
            </form> 
           </div> 
          </div> 
         </div> 
        </div> 

所以,當我點擊提交按鈕,它會調用這個servlet。而在我的servlet中,我正在處理一些事情。之後,我想這個servlet重定向到同一個index.jsp和下一個標籤 在我的servlet我想這

RequestDispatcher rd = request.getRequestDispatcher("index.jsp#fromDatabase"); 
rd.forward(request, response); 

但它不能正常工作。有什麼辦法嗎?

(更新版)試圖通過@JB Nizet給出的解決方案後

這是我代碼

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

然後它顯示在我的index.jsp以下

enter image description here

我知道這是因爲雙引號ES。我無法糾正它。

回答

0

在轉發到JSP之前,servlet應該簡單地決定哪個選項卡必須處於活動狀態並將這些信息存儲在請求屬性中。例如:

request.setAttribute("activeTab", "fromDatabase"); 

而JSP應該使用這些信息來使相應的選項卡激活。例如:

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

(以及類似的選項卡內容)

+0

感謝。但是,當我在瀏覽器中打開index.jsp時,它似乎是個問題。請參閱問題 – iCode

+0

中的更新1檢查生成的HTML代碼(在瀏覽器中查看頁面源代碼)。確保JSTL核心taglib是在JSP中聲明的。 –

+0

如何申報? – iCode