-------- spring MVC 框架应用的已经比较广泛了,ajax异步请求与springMVC结合应用更加完善了 spring框架的功能,笔者就入门简单介绍一下自己的代码体验---------
一、前台发出的请求(注意jquery的应用):
$.ajax({
type : "get",
url : "${ctx}/userDetect/doActionPath.do",
data : {
"macaddress" : macadd,
"begintime" : begintime,
"endtime" : endtime
},
dataType : "json",
success : function(data) {
}
})
二、springmvc-servlet-xml 的相关配置:(有了这个配置文件,spring才能为我们将返回值自动转化为json格式对象)
<bean
class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<list>
<ref bean="mappingJacksonHttpMessageConverter" /><!-- json转换器 -->
</list>
</property>
</bean>
<bean id="mappingJacksonHttpMessageConverter"
class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter" />
三、后台的控制器根据注解地址映射来处理前台提交的请求(注意:如果要使用springmvc自带的ajax功能,需要倒入依赖包,网上可以搜):
@Controller
@RequestMapping(value="/userDetect/*")
public class UserDetectController {
@RequestMapping(value="doActionPath.do")
@ResponseBody
public Map<String, Object> doActionPath(HttpServletRequest request, HttpServletResponse response,
@RequestParam String macaddress,@RequestParam String begintime,@RequestParam String endtime) throws SQLException{
Map<String, Object> modelMap = new HashMap <String, Object>();
List<LocationInfoEntity> actionPathList = countInfoDao.doAcionPath(macaddress,begintime,endtime);
modelMap.put("locuslist",actionPathList);
}
return modelMap;
}
}
@ResponseBody:声明返回的数据为json格式,这里的json是个对象。
modelMap.put("locuslist",actionPathList);:将查出来的actionPathList存到locuslist中,可以再前台的回调函数中取得,例如(data.locuslist)即可。
四、前台的取值方法:
注意:这里不需要再用js 自带的 eval()进行对象转换,直接用就行,比如在回调函数内可以这样:
success : function(data) {
var obj = data.locuslist;
var arr= obj[0];
var name= arr[0];
var sex = arr[1];
}
注意:我们取得locuslist里面实体类的成员变量时,不能直接 arr.naem,arr.sex。而是以(0~1,2,3,...)数字的形式依次去的实体类中成员变量的值!!!