程序无法运行请检查

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

warren_au

2020-06-11 11:05:37

package wjb.project;


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 ChannelServlet

 */

@WebServlet("/channel")

public class ChannelServlet extends HttpServlet {

private static final long serialVersionUID = 1L;

       

    /**

     * @see HttpServlet#HttpServlet()

     */

    public ChannelServlet() {

        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");

List chlist=new ArrayList();

if(level.equals("1")) {

chlist.add(new Channel("ai","前沿/区块链/人工智能"));

chlist.add(new Channel("web","前端/小程序/JS"));

}else if(level.equals("2")) {

if(parent.equals("ai")) {

chlist.add(new Channel("micro","微服务"));

chlist.add(new Channel("blockchain","区块链"));

chlist.add(new Channel("other","..."));

}else if(parent.equals("web")) {

chlist.add(new Channel("html","HTML"));

chlist.add(new Channel("css","CSS"));

chlist.add(new Channel("other","..."));

}

}

String json=JSON.toJSONString(chlist);

response.setContentType("text/html;charset=utf-8");

response.getWriter().println(json);

}


}

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title>Insert title here</title>

<script type="text/javascript" src="js/jquery-3.5.1.js"></script>

<script type="text/javascript">

$(function(){

$.ajax({

"url":"/ajax/channel",

"data":{"level":"1"},

"type":"get",

"dataType":"json",

"success":function(json){

console.log(json);

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

var ch=json[i];

$("#lv1").append("<option value='"+ch.code+"'>"+ch.name+"</option>");

}

}

})

})

$(function{

$("#lv1").on("change",function(){

var parent=$(this).val();

console.log(parent);

$.ajax({

"url":"/ajax/channel",

"data":{"level":"2","parent":parent},

"dataType":"json",

"type":"get",

"success":function(json){

console.log(json);

$("#lv2>option").remove();

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

var ch=json[i];

$("#lv2").append("<option value='"+ch.code+"'>"+ch.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>

</body>

</html>

package wjb.project;


public class Channel {

private String code;

private String name;

public Channel(String code, String name) {

super();

this.code = code;

this.name = name;

}

public Channel() {

super();

}

}


写回答

2回答

好帮手慕阿慧

2020-06-11

同学你好,

1、同学检查一下项目请求路径是不是ajax,检查如下:

项目右击,选择Properties,选择Web Project Settings,查看Context root值是否是ajax。如果不是,将其改为ajax并点击下方的apply and close。

以web01为例,如下图:

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

2、clean一下项目:tomcat右击,选择clean,再重启tomcat,访问试试。

如下图:

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

3、项目访问,如下图:

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

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

0

好帮手慕阿慧

2020-06-11

同学你好,FastJson是根据JavaBean规范来写的,底层通过反射获得对象的get()方法来获取对象属性的值,所以如果不写get()方法。FastJson无法通过get()方法获取对象属性值,那么返回前端的结果就是{}。同学需要在Channel类中添加get,set方法。

参考代码如下:

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

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

0
harren_au
h 类型 状态报告 消息 The requested resource [/ajax/channel] is not available 描述 源服务器未能找到目标资源的表示或者是不愿公开一个已经存在的资源表示。 还是不能运行,报错是这个,我网页映射关系写的是:http://localhost:8080/ajax/channel
h020-06-11
共1条回复

0 学习 · 16556 问题

查看课程