jsp页面加载的时候,从后台获取数据,页面加载完成之后,下拉列表中已经有值

本文介绍了在jsp页面中如何实现在页面加载完成后下拉列表已有数据的场景。通过在标签中设置onload事件,调用fun()函数,利用ajax从后台获取json数据,遍历并动态生成下拉列表的option元素。
摘要由CSDN通过智能技术生成

         在jsp中,我们经常会遇到这种情况:当页面加载完成之后,下拉列表中已经有数据,这是怎么实现的呢?

     下面作以详解:

     1.<body οnlοad="fun()">:在jsp的body里面有个onload事件,这个事件是在页面加载的时候起监听作用,调用某个函数(例如fun()函数)。因此我们可以通过fun函数从后台获取数据,显示在下拉列表中;

     2.fun()函数怎么写呢:可以通过ajax技术,从后台获取数据(数据格式可以是json格式或其他,本人倾向于json格式),通过解析,放在下拉列表中,代码如下:

     <script >
	   function fun(){	<pre name="code" class="javascript">             $.ajax({
	  	    type:"POST",
	            url: "statisticInfo_getCategorys.do?id=" + id,//请求的url,问号后面是所带的参数;
	            dataType:'json',
	            async:false,
	            success:function(data){
		            data = eval(data.root);//必须通过eval函数才能解析成json数据,否则会报错
	            }
	    }); 
	 }
</script>
ps:a.获取的json数据必须通过eval函数才能转化为真正的json数据,因为json数据格式本身就有一个大括号{},
如果不转的话,js会把数据当成一个语句块执行,转了之后才能当成表达式执行;
b.我们在后台获取的json数据格式一定要正确,否则不会执行到success:function(data){};里面。大家可
以把后台获取的json数据打印出来放到json在线解析中验证一下是否正确;在线解析地址:
http://www.sojson.com/index.html
c:凡是字符串的一定带上双引号,数字的就没必要;
例如:

         
3.通过第二步已经获取到了json数据,那我们如何解析呢: 

           观察json数据,凡是用[ ]框起来的就算是一个数组,既然是数组就可以对数组进行遍历(第二步经过eval       得到的data):

           for(var i = 0; i < data.length; i++){

             alert(data[i].name);

             alert(data[i].id)

           }

      4.数据已经放到js页面,我们可以动态生成下拉列表:

         a.select写成固定形式;

         //注意:在事件中如果要调用两个函数,要用分号隔开,但是两个函数执行有先后顺序

        <select id="category" οnchange="fun1();fun2()"></select>

        b.option动态生成:因为一个select中可以包含很多option(要根据后台获取的数据确定大小)

<pre name="code" class="html">       data = eval(data.root);
       var selection= document.getElementById("category");
       var firstOption=document.createElement("option");//创建
       firstOption.value = "-1";  
       firstOption.text = "--please select--";  
       selection.appendChild(firstOption);
       for (var i = 0; i < data.length; i++){
	 var _option = document.createElement("option");  
	 if(i == 0){
	   _option.selected = 1; 
	 }
	 _option.value = data[i].id;     <pre name="code" class="javascript"><pre name&
  • 4
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
要在JSP页面加载时发送带参数的请求到后台,并将后台返回的数据传递到前台,您可以使用JavaScript和JSP的结合。以下是一个示例代码: ```html <!DOCTYPE html> <html> <head> <title>JSP页面加载时发送带参数请求到后台</title> </head> <body> <script> // 创建XMLHttpRequest对象 var xhr = new XMLHttpRequest(); // 构建请求URL,假设参数名为name,值为John var url = '后台处理请求的URL?name=John'; // 指定请求的方法和URL xhr.open('GET', url, true); // 设置请求完成后的回调函数 xhr.onload = function() { if (xhr.status === 200) { // 请求成功,可以在这里处理返回的数据 console.log(xhr.responseText); } }; // 发送请求 xhr.send(); </script> </body> </html> ``` 在上面的代码,我们构建了一个带参数的请求URL,参数名为`name`,值为`John`。您可以根据实际需求修改参数名和值。然后使用`xhr.open`方法打开GET请求,将构建好的URL作为参数传入。当JSP页面加载时,将会发送带参数的GET请求到后台,并在请求成功后执行回调函数。您可以在回调函数处理返回的数据或执行其他操作。 在后台处理请求的URL对应的后台代码,您可以获取传递过来的参数值,并进行相应的处理。处理完成后,将数据返回到前台,可以使用类似以下的代码: ```java // 获取传递过来的参数值 String name = request.getParameter("name"); // 进行相应的处理,获取处理结果 String result = someMethod(name); // 将结果返回到前台 response.getWriter().write(result); ``` 请将上述Java代码嵌入到您的JSP页面对应的后台代码。`result`变量的内容将会作为响应数据返回到前台,在前端的回调函数可以进行进一步处理和展示。 请注意,在实际开发,您可能需要根据需要调整请求的方法(如GET、POST等)和参数的传递方式。此示例仅提供了基本的发送GET请求和获取参数的代码,您可以根据具体需求进行修改和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值