避免在JSP页面的dropdownlist中重新加载数据

时间:2011-03-03 07:30:07

标签: java jsp

我有一个JSP页面,它由三个表单组成,每个表单都包含一个下拉列表。

在第一个下拉列表onchange上调用事件并从数据库获取数据并将数据保存到另一个下拉列表中。我的问题是当页面重新加载时,下拉列表中选择的数据被更改。

如何解决页面加载时数据未更改的问题?

3 个答案:

答案 0 :(得分:1)

AJAX部分在这里:

将您的内容包含在3个单独的div中。 现在,调用reloadReqdForm()函数,而不是提交页面。 something.do是您正在使用的Action的名称。 现在,无论结果如何,它将在最后一个函数中作为req.responseText出现,你将把它放在消息var中。 div1是您想要重新加载的div的名称/ ID。

function reloadReqdForm(){

var url = "something.do?queryString";
       if (window.XMLHttpRequest) {
           req = new XMLHttpRequest();
       } else if (window.ActiveXObject) {
          req = new ActiveXObject("Microsoft.XMLHTTP");
        }
       req.open("POST", url, true);
       req.onreadystatechange = callbackReloadForm;
       req.send(null);
}
function callbackReloadForm()
 {
 if (req.readyState == 4) 
 {
    if (req.status == 200) {
        drawResponse();
      }
 }
}

function drawResponse() {
var message = req.responseText;
     document.getElementById("div1").innerHTML=message;
}

希望,它会奏效。

答案 1 :(得分:0)

如何使用JQuery One方法,使处理程序只执行一次。

$('something').one('onChange', function(e) {
alert('You will only see this once.');
});

答案 2 :(得分:0)

一种解决方案是使用AJAX。 另一个是提交您想要保留的下拉值。通过在模型对象中设置它们来从控制器返回这些值。