Javascript 使用ajax更改jsp中的数据
我有一个带有标记select的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
<%@ 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,删除其内容并加载新内容。谢谢,这很有用