2011-12-12 87 views
0

我必須使用struts設計一個網頁。 我必須顯示兩個下拉菜單。 第一個下拉列表中的數據將從數據庫動態填充。這部分已完成。 我必須根據第一個下拉列表中的選擇填充第二個下拉列表中的數據。在struts中級聯下拉

因爲我是struts技術的新手,所以我需要這方面的幫助。

感謝, 薩欽

+0

它可以幫助張貼到目前爲止您已經編寫了這一步的代碼。 – Verbeia

回答

0
You can use ajax to load data to the dropdown2 by invoking it in the onchange method for dropdown1 

DropDown1: 
---------- 

    <s:select key="label.name" list="list1" onchange="reloadView();" name="id" id="list"> 
    </s:select> 

reloadView() 
------------ 

try { 
     // Opera 8.0+, Firefox, Safari 
     ajaxRequest = new XMLHttpRequest(); 
    } 
    catch (e) 
    { 
     // Internet Explorer Browsers 
     try { 
       ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP"); 
     } 
        catch (e) 
       { 
       try { 
       ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP"); 
      } 
       catch (e) 
       { 
           alert("Your browser has no AJAX Support!"); 
        return false; 
       } 
     } 
     } 
    var url = "yourUrl"; 
    ajaxRequest.open("POST", url, true); 
    ajaxRequest.onreadystatechange = function() 
    { 
     try 
     { 
       if (ajaxRequest.readyState == 4 && ajaxRequest.status == 200) { 
         var res = ajaxRequest.responseText; 
         if (res) 
         { 
           document.getElementById("yourDiv").innerHTML = res; 
           adjustTable(); 
         } 
       } 
     } 
     catch (e) 
     { 

     } 
    } 
    ajaxRequest.send(null); 

DropDown2 
--------- 

    <div id="yourDiv"> 
    <s:select> 
    </div> 
+0

感謝您的回覆。 是的,我可以使用Ajax。但是,如果我將使用第二個HTML下拉菜單,我如何才能獲得Action Class中的值。我需要兩個在我的Action類中的兩個下拉對象。 –

+0

這是你應該做的,action1.action會爲dropdown1加載數據,並將頁面重定向到一個jsp。在下拉列表1中,您將調用另一個操作類或相同的操作類(但調用另一種方法或使用將此調用與調用區分開的參數來標識調用,以加載dropdown1的數據),這將爲dropdown2加載數據。 – Pradeep

+0

嗨Pradeep, 但是,你能告訴我如何在下拉式的onchange事件中調用一個動作? –