我需要将我的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);
}