提交表单而不刷新(SPRING MVC 3)
Submit form without refreshing (SPRING MVC 3)
是否可以在不刷新的情况下在SPRING MVC 3中提交表单?
我想要的是将SPRING形式的数据存储到java object/POJO中。
这是我的地图.jsp
<form:form action="" method="post" commandName="userQuery">
<form:input path="startLocation" id ="startLocation" />
<input type="submit" value="Search" onclick="codeAddress()">
<script type="text/javascript">
function codeAddress(){
var address = document.getElementById("startLocation").value;
geocoder.geocode( { 'address': address, 'partialmatch' : true }, geoCodeResults );
</script>
我正在尝试将数据(即开始位置)存储到 java 对象中,同时将该数据用于 javascript,以便我可以显示谷歌地图并在该位置显示标记。但是每次我提交表单时,它都会刷新页面,因此不会呈现标记,因为它会重新加载整个页面,包括地图
这是我的控制器.java
@RequestMapping(value= "/map" , method = RequestMethod.GET)
public ModelAndView showMap(){
ModelAndView mav = new ModelAndView("home/map");
Query query = new Query();
mav.getModel().put("userQuery", query);
return mav;
}
@RequestMapping(value="/map", method = RequestMethod.POST)
public ModelAndView createMap(@ModelAttribute("userQuery") Query query ){
ModelAndView mav = new ModelAndView("home/map");
List<Query> q = new ArrayList<Query>();
q.add(new Query(query.getStartLocation()));
mav.addObject("q", q);
return mav;
}
我需要存储起始位置。 请帮忙。 除了 SPRING 表单之外,还有其他方法来存储用户输入吗?
我会考虑将jQuery javascript库与jQuery表单插件一起使用。它使使用 AJAX 发布表单(即无需重新加载整个页面)变得更加容易。
你正在做的很好。但是你只缺少一件事是java脚本函数的"return false"。因为您是从表单提交按钮调用该函数的,所以在成功处理 ajax 请求后,它也会提交表单。所以你需要阻止它。
希望这对你有帮助。干杯。
我认为下面的代码会帮助你
在事件上调用下面的javascript方法,当您想要更新开始位置时在您的情况下,需要在提交按钮单击时调用addStartLocation方法,而不是"codeAddress()"方法
var xmlHttp;
function addStartLocation(){
if (typeof XMLHttpRequest != "undefined"){
xmlHttp= new XMLHttpRequest();
}
else if (window.ActiveXObject){
xmlHttp= new ActiveXObject("Microsoft.XMLHTTP");
}
if (xmlHttp==null){
alert("Browser does not support XMLHTTP Request")
return;
}
var url="/project/updateStartLocation";
url +="?location=" +document.getElementById("location").value;
xmlHttp.onreadystatechange = displayMap;
xmlHttp.open("GET", url, true);
xmlHttp.send(null);
}
function displayMap() {
// Here you can right geocode to display map
}
然后在Spring MVC控制器中像这样处理这个请求
@RequestMapping(value = "/updateStartLocation", method = RequestMethod.GET)
public @ResponseBody String updateStartLocation(@RequestParam(value = "location", required = true) String location, Model model) {
//Perform your logic to update Start Location
return location;
}
相关文章:
- 获取@ResponseBody的一部分作为主干和Spring MVC控制器之间的参数
- 如何使用Spring MVC将Facebook返回的响应数据保存在Java类中
- 使用 JQUERY AJAX (Spring MVC) 从控制器中删除
- Spring MVC:如何在Javascript中访问modelAndView XML对象
- 无法使用Angular JS和spring MVC打开下载文件
- Spring MVC Ajax请求刷新动态表
- 打印从Spring MVC Controller发送的字符串数组只显示“;toJSON”;在javascript中
- 如何将我的Ionic应用程序与我的java服务器(Spring MVC)连接
- 如何将Spring MVC Javascript模板引擎与双节棍集成
- Spring MVC 集成 js 和 css 文件
- Spring MVC中的PUT方法HTTP Status 400-AngularJS
- 如何使用Spring MVC将Java Map放入Optgroup选项中
- Spring MVC与Google图表,创建javascript数据表的最佳方式是什么
- spring mvc, rest, angularJs
- Spring MVC获取onclick输入星级的值
- 带有 Spring MVC <3.0.4 的 JSP 中的源 JavaScript 文件
- 是否可以将javascript json ajax POST的多个参数传递给Spring MVC控制器
- 如何将Spring MVC的JSON响应放入jsp中的表中
- Spring MVC 框架(从 UI 到完成事务的过程)
- HTTP 状态 405 - 不支持请求方法“POST”(Spring MVC)