将从servlet返回的hashmap对象分配给Javascript变量

时间:2018-05-17 11:03:39

标签: javascript java jquery ajax servlets

我需要将我的servlet响应对象分配给javascript中的var finalout=[];并将其打印用于测试目的。我不确定它失败的地方。

Jquery / Ajax / Java脚本:

<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script language="javascript">
 var finalout=[];

    $(document).on("click", "#somebutton", function() {  


        $.get("simpleServlet", function(responseJson) 
        {    
            document.write(responseJson);
            finalout=responseJson;
        });
    });
   console.log(finalout);
    console.log("tested3");
var x = document.getElementById("mySelect");


for (i = 0; i < finalout.length; i++)
        {
        var c = document.createElement("option");
           c.text =finalout[i][0];
            x.options.add(c);
        }

function ChangeCarList() {
    var carList = document.getElementById("mySelect");
    var modelList = document.getElementById("carmodel");
    var selCar = carList.selectedIndex-1;
    while (modelList.options.length) {
        modelList.remove(0);
    }
    var cars =  finalout[selCar][1].replace('[', '').replace(']', '').split(",");
    if (cars) {
        var i;
        for (i = 0; i < cars.length; i++) {
            var car = new Option(cars[i],i);
            modelList.options.add(car);
        }
    }
}
</script>     

HTML:

 <div id="somediv">

    <select id="mySelect" onchange="ChangeCarList()">
        <option value="0">Select car:</option>
    </select>

    <select id="carmodel">
        <option value="0">Select car:</option>
     </select>

     <button id="somebutton">Click me </button>

</div>

的Servlet

@WebServlet(urlPatterns = { "/simpleServlet"} )

public class SimpleServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    public SimpleServlet() {
        super();

    }


    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {


        HashMap<String, ArrayList<String>> months = new HashMap<>();

        //doing some functions and manipulating it

        response.setContentType("application/json");
        response.setCharacterEncoding("UTF-8");
        response.getWriter().print(months);

    }

0 个答案:

没有答案