我必须使用struts设计一个网页。 我必须显示两个下拉菜单。 第一个下拉列表中的数据将从数据库动态填充。这部分已完成。 我必须根据第一个下拉列表中的选择填充第二个下拉列表中的数据。在struts中级联下拉
因为我是struts技术的新手,所以我需要这方面的帮助。
感谢, 萨钦
我必须使用struts设计一个网页。 我必须显示两个下拉菜单。 第一个下拉列表中的数据将从数据库动态填充。这部分已完成。 我必须根据第一个下拉列表中的选择填充第二个下拉列表中的数据。在struts中级联下拉
因为我是struts技术的新手,所以我需要这方面的帮助。
感谢, 萨钦
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>
感谢您的回复。 是的,我可以使用Ajax。但是,如果我将使用第二个HTML下拉菜单,我如何才能获得Action Class中的值。我需要两个在我的Action类中的两个下拉对象。 –
这是你应该做的,action1.action会为dropdown1加载数据,并将页面重定向到一个jsp。在下拉列表1中,您将调用另一个操作类或相同的操作类(但调用另一种方法或使用将此调用与调用区分开的参数来标识调用,以加载dropdown1的数据),这将为dropdown2加载数据。 – Pradeep
嗨Pradeep, 但是,你能告诉我如何在下拉式的onchange事件中调用一个动作? –
它可以帮助张贴到目前为止您已经编写了这一步的代码。 – Verbeia