Javascript 使用ajax更改jsp中的数据

Javascript 使用ajax更改jsp中的数据,javascript,java,jquery,ajax,jsp,Javascript,Java,Jquery,Ajax,Jsp,我有一个带有标记select的jsp页面。我想根据选项更改此页面上的数据 这是我的密码: <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <script src="http://code.jquery.com/jquery-1.1

我有一个带有标记select的jsp页面。我想根据选项更改此页面上的数据

这是我的密码:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<script src="http://code.jquery.com/jquery-1.10.2.min.js" type="text/javascript" ></script>
<head>
<title></title>
</head>
<body>

<select id="select_city">
<c:forEach items="${allCities}" var="city">
    <option value="${city.name}">${city.name}</option>
</c:forEach>
</select>

<script type="text/javascript">
$('#select_city').change(function() {
    $.get("/admin/users/workers?city="+$(this).val(), function(allUsers,status){
        console.log(allUsers);
    });
});
 </script>  

 </body>
 </html>
控制器工作正常

@RequestMapping(value = "/admin/users/workers", method =    RequestMethod.GET)
@ResponseBody
public ModelAndView getWorkersAdmin(@RequestParam(value = "city", required = false) String city) {

 List<User> users=userRepository.findUserByCity(city);
 .... 
    ModelAndView mav = new ModelAndView();
    mav.setViewName("hello");
    mav.addObject("allUsers", users);
    return mav;}
Console.log向我显示所有必要的信息。 那么,如何将我的java脚本回答为:

<c:forEach items="${allUsers}" var="user">

更新信息。

您可以使用javascript添加选项:

var select_city = document.getElementById('select_city');
select_city.options[select_city.options.length] = new Option('Option 1', 'value1');

您可以在ajax成功回调中迭代您的诱惑者,并在循环中添加上述选项。

更多的是注释而不是答案,但需要空间

您没有抓住要点,当请求JSP页面时,它会生成HTML。JSP将不会再次执行,直到再次请求页面,然后它将再次生成整个位置

因此,不能使用JSP标记用Ajax填充select。JSP是在服务器中执行的,您需要使用在web浏览器中执行的JavaScript和已下载的HTML来处理Ajax。使用JavaScript,您可以更改在DOM结构中组织的HTML内容,以清除select中以前的值以及通过Ajax调用接收到的所有新值


因此,您必须修改javascript函数以检索select by ID,删除其内容并加载新内容。

谢谢,这很有用