AJAX三种返回查询结果的三种方式
2017-11-22 09:41
281 查看
1、第一种
2、第二种
1、使用第三种方法需要在pom.xml配置文件中添加以下依赖的jar包
当配置完成后你会发现第二种方法用不了,这时有需要配置第二种方法的转换器
/** * 原始的输出json方式 * OutputStream os; * os.write(通过第三方json-lib转换的json字符串.getByte()) */ @RequestMapping(value="/popo",method=RequestMethod.GET) public String queryFood(String foodname, OutputStream os) throws UnsupportedEncodingException, IOException{ List<Map<String, Object>> queryAllFood = mdi.queryAllFood(foodname); JSONArray arry=JSONArray.fromObject(queryAllFood); String j=arry.toString(); os.write(j.getBytes("UTF-8")); return null; }
2、第二种
/** * 直接返回 字節數組 記得加@ResponseBody註解 */ @ResponseBody @RequestMapping(value="/queryFoodReturn",method=RequestMethod.GET) public byte[] queryFoodReturn(String foodname) throws UnsupportedEncodingException, IOException{ List<Map<String, Object>> queryAllFood = mdi.queryAllFood(foodname); JSONArray arry=JSONArray.fromObject(queryAllFood); String j=arry.toString(); return j.getBytes("UTF-8"); }3、第三种
/** * 直接返回一个对象 */ @ResponseBody @RequestMapping(value="/queryFoodList",method=RequestMethod.POST) public List<Map<String, Object>> queryFoodList(String foodname) throws UnsupportedEncodingException, IOException{ List<Map<String, Object>> queryAllFood = mdi.queryAllFood(foodname); return queryAllFood; }注:但是直接返回一个对象浏览器是识别不了的 需要借助外部的jar包来帮浏览器解析
1、使用第三种方法需要在pom.xml配置文件中添加以下依赖的jar包
<!-- 添加jackson的json解析庫 --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.6.0</version> </dependency> <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-core-asl</artifactId> <version>1.9.12</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> <version>2.6.0</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.6.0</version> </dependency> <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-mapper-asl</artifactId> <version>1.9.12</version> </dependency>2、在springmvc.xml配置转换器
<!-- 启用注解驱动 --> <mvc:annotation-driven validator="localValidatorFactoryBean"> <mvc:message-converters> <!-- 用于對象消息轉換器 --> <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/html</value> <value>application/x-www-form-urlencoded</value> </list> </property> </bean> </mvc:message-converters> </mvc:annotation-driven>
当配置完成后你会发现第二种方法用不了,这时有需要配置第二种方法的转换器
<!-- 启用注解驱动 --> <mvc:annotation-driven validator="localValidatorFactoryBean"> <mvc:message-converters> <!-- 用于字節數組的消息轉換器 --> <bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/html</value> <value>application/x-www-form-urlencoded</value> </list> </property> </bean> <!-- 用于對象消息轉換器 --> <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/html</value> <value>application/x-www-form-urlencoded</value> </list> </property> </bean> </mvc:message-converters> </mvc:annotation-driven>这样三种方法可以同时使用了
相关文章推荐
- JAVA多线程实现方式主要有三种:继承Thread类、实现Runnable接口、使用ExecutorService、Callable、Future实现有返回结果的多线程。其中前两种方式线程执行完后都没
- **CI两种方式查询所返回的结果数量
- JDBC获取SQL查询语句返回记录数的三种方式效率比较
- jquery中的ajax如何返回结果而非回调方式即为同顺序执行
- ajax查询数据返回结果不变
- Hibernate查询之SQL查询,查询结果用new新对象的方式接受,hql查询,通过SQL查询的结果返回到一个实体中,查询不同表中内容,并将查到的不同表中的内容放到List中
- json格式数据,将数据库中查询的结果转换为json, 然后调用接口的方式返回json(方式一)
- 文件上传 通过隐藏iframe的方式来实现ajax上传文件并返回处理结果 ie乱码问题解决
- JDBC获取SQL查询语句返回记录数的三种方式效率比较
- Hibernate查询之SQL查询,查询结果用new新对象的方式接受,hql查询,通过SQL查询的结果返回到一个实体中,查询不同表中内容,并将查到的不同表中的内容放到List中
- Django objects的查询结果转化为json的三种方式的方法
- 介绍一下ajax后最好的返回结果的方式&amp;#34;Json&amp;#34;
- 三种方法实现从“一个(组)查询过程中返回两个表的查询结果”
- PHP使用PDO抽象层获取查询结果三种方式
- jquery中的ajax如何返回结果而非回调方式即为同顺序执行
- jquery中的ajax如何返回结果, 而非回调方式
- JAVA多线程实现的三种方式(继承Thread类、实现Runnable接口、使用ExecutorService、Callable、Future实现有返回结果的多线程)
- 三种方法实现从“一个(组)查询过程中返回两个表的查询结果”
- 介绍一下ajax后最好的返回结果的方式"Json"
- 判断手机端用户打开页面时是android还是ios,并将判断结果通过ajax返回给url接口,传递回去