传参失败?

来源:3-8 实现二级联动菜单-2

Ctrlzhao

2019-11-25 13:53:34

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript" src="js/jquery-3.4.1.js"></script>
<script type="text/javascript">
	$(function(){
		$.ajax({
			"url":"/ajax/provinces",
			"data":{"level":"1"},
			"type":"get",
			"dataType":"json",
			"success":function(json){
				for(var i=0;i<json.length;i++){
					var ch=json[i];
					$("#lv1").append("<option value="+json[i].code+">" + json[i].name + "</option>");
				}
			},
			"":"",
		})
	})
	
</script>
</head>
<body>
	<select id="lv1" style="width:200px;height:30px"/>
		<option selected="selected">请选择</option>
	</select>
	<select id="lv2" style="width:200px;height:30px"/>
		
	</select>
	<select id="lv3" style="width:200px;height:30px"/>
		
	</select>
</body>
</html>
package com.imooc.ajax;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.alibaba.fastjson.JSON;

/**
 * Servlet implementation class ProvincesServelt
 */
@WebServlet("/provinces")
public class ProvincesServelt extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public ProvincesServelt() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String level = request.getParameter("level");
		String parent = request.getParameter("parent");
		String block = request.getParameter("block");
		List list = new ArrayList();
		if(level.equals("1")) {
			list.add(new Channel("hn","河南"));
			list.add(new Channel("gx","广西"));
			list.add(new Channel("gd","广东"));
		}else if(level.equals("2")) {
			if(parent.equals("河南")) {
				list.add(new Channel("zz","郑州"));
				list.add(new Channel("ly","洛阳"));
				list.add(new Channel("kf","开封"));
			}else if(parent.equals("广西")) {
				list.add(new Channel("nn","南宁"));
				list.add(new Channel("gl","桂林"));
				list.add(new Channel("gg","贵港"));
			}else if(parent.equals("广东")) {
				list.add(new Channel("gz","广州"));
				list.add(new Channel("zs","中山"));
				list.add(new Channel("sg","韶关"));
			}
		}else if(level.equals("3")) {
			if(block.equals("郑州")) {
				list.add("中原区");
				list.add("二七区");
				list.add("高新区");
			}else if(block.equals("贵港")) {
				list.add("桂平市");
				list.add("港南区");
				list.add("覃塘区");
			}else if(block.equals("广州")) {
				list.add("番禺区");
				list.add("越秀区");
				list.add("黄浦区");
			}
		}
		String json = JSON.toJSONString("list");
		response.setContentType("text/html;charset=UTF-8");
		response.getWriter().println(json);
	}

}

http://img.mukewang.com/climg/5ddb6c5a0982298305450499.jpg

写回答

2回答

芝芝兰兰

2019-11-25

同学你好。获取到的值是字符串“list”,而不是将后台的list变量转换成的json对象:

http://img.mukewang.com/climg/5ddb907b0912d17508310434.jpg

这是因为放置的时候,我们只是将字符串“list”转换为json格式发送了。而不是list字符串,需要将引号去掉,改为String json = JSON.toJSONString(list);

http://img.mukewang.com/climg/5ddb90a609c5844005500197.jpg

就可以得到值了:

http://img.mukewang.com/climg/5ddb90fa09cc8f6202930142.jpg

如果解答了同学的疑问,望采纳~

祝学习愉快~

0

Ctrlzhao

提问者

2019-11-25

上面修改后的 Servlet 

package com.imooc.ajax;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.alibaba.fastjson.JSON;

/**
 * Servlet implementation class ProvincesServelt
 */
@WebServlet("/provinces")
public class ProvincesServelt extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public ProvincesServelt() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String level = request.getParameter("level");
		String parent = request.getParameter("parent");
		String block = request.getParameter("block");
		List list = new ArrayList();
		if(level.equals("1")) {
			list.add(new Channel("hn","河南"));
			list.add(new Channel("gx","广西"));
			list.add(new Channel("gd","广东"));
		}else if(level.equals("2")) {
			if(parent.equals("hn")) {
				list.add(new Channel("zz","郑州"));
				list.add(new Channel("ly","洛阳"));
				list.add(new Channel("kf","开封"));
			}else if(parent.equals("gx")) {
				list.add(new Channel("nn","南宁"));
				list.add(new Channel("gl","桂林"));
				list.add(new Channel("gg","贵港"));
			}else if(parent.equals("gd")) {
				list.add(new Channel("gz","广州"));
				list.add(new Channel("zs","中山"));
				list.add(new Channel("sg","韶关"));
			}
		}else if(level.equals("3")) {
			if(block.equals("zz")) {
				list.add(new Channel("zy","中原区"));
				list.add(new Channel("eq","二七区"));
				list.add(new Channel("gxq","高新区"));
			}else if(block.equals("gg")) {
				list.add(new Channel("gp","桂平市"));
				list.add(new Channel("gn","港南区"));
				list.add(new Channel("tt","覃塘区"));
			}else if(block.equals("gz")) {
				list.add(new Channel("py","番禺区"));
				list.add(new Channel("yx","越秀区"));
				list.add(new Channel("hp","黄浦区"));
			}
		}
		String json = JSON.toJSONString("list");
		response.setContentType("text/html;charset=UTF-8");
		response.getWriter().println(json);
	}
}


0
htrlzhao
h 还是不成功,老师帮忙看看
h019-11-25
共1条回复

0 学习 · 9666 问题

查看课程