springmvc返回json数据的配置 在springmvc_servlet.xml怎么配置

J2EE 码拜 9年前 (2015-04-05) 804次浏览 0个评论
 

我看51cto讲spingmvc返回json数据是这么配置的     大家项目怎么配置的啊

    <!–处理直接返回json格式字符串–>  
   <bean id=”stringHttpMessageConverter” class=”org.springframework.http.converter.StringHttpMessageConverter” >  
    <property name=”supportedMediaTypes”>  
          <list>  
               <value>text/plain;charset=UTF-8</value>  
          </list>  
        </property>  
</bean>

<!– 处理json –>  
   <bean id=”mappingJacksonHttpMessageConverter” class=”org.springframework.http.converter.json.MappingJacksonHttpMessageConverter”>  
      </bean>  

    <!– 启动Spring MVC的注解功能,完成请求和注解POJO的映射–>  
    <bean class=”org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter”>  
       <property name=”messageConverters”>  
           <list>  
               <ref bean=”stringHttpMessageConverter” />  
               <ref bean=”mappingJacksonHttpMessageConverter” />  
           </list>  
       </property>  
    </bean>  

springmvc返回json数据的配置 在springmvc_servlet.xml怎么配置
springmvc返回json数据的配置 在springmvc_servlet.xml怎么配置
这是 51CTO视频里的配置   不知道大家项目怎么配置的啊
springmvc返回json数据的配置 在springmvc_servlet.xml怎么配置
Spring这个是要配合jackson使用的~

由于之前用的都是json-lib,所以
其实关于json你也可以手动用response去回传
封装一个sendJson方法,设置好响应头的content-type就行~

springmvc返回json数据的配置 在springmvc_servlet.xml怎么配置
引用 2 楼 u012345283 的回复:

Spring这个是要配合jackson使用的~

由于之前用的都是json-lib,所以
其实关于json你也可以手动用response去回传
封装一个sendJson方法,设置好响应头的content-type就行~

谢谢指点 具体怎么封装啊  有源码吗

springmvc返回json数据的配置 在springmvc_servlet.xml怎么配置
引用 3 楼 hadoop333 的回复:
Quote: 引用 2 楼 u012345283 的回复:

Spring这个是要配合jackson使用的~

由于之前用的都是json-lib,所以
其实关于json你也可以手动用response去回传
封装一个sendJson方法,设置好响应头的content-type就行~

谢谢指点 具体怎么封装啊  有源码吗

不是告诉你了吗

	public void sendJson(HttpServletResponse response, String json)
			throws IOException {
		response.setContentType("application/json;charset=utf-8");
		response.getWriter().write(json);
	}
springmvc返回json数据的配置 在springmvc_servlet.xml怎么配置
只要你在后台用流写出json格式的字串,前台是用ajax 发送的请求,
springmvc返回json数据的配置 在springmvc_servlet.xml怎么配置
response.setContentType(“text/html;charset=utf-8”);     
设置 这样就可以 了
springmvc返回json数据的配置 在springmvc_servlet.xml怎么配置
貌似  response.setContentType(“application/json;charset=utf-8”);   这样也是可以
springmvc返回json数据的配置 在springmvc_servlet.xml怎么配置
引用 4 楼 u012345283 的回复:
Quote: 引用 3 楼 hadoop333 的回复:
Quote: 引用 2 楼 u012345283 的回复:

Spring这个是要配合jackson使用的~

由于之前用的都是json-lib,所以
其实关于json你也可以手动用response去回传
封装一个sendJson方法,设置好响应头的content-type就行~

谢谢指点 具体怎么封装啊  有源码吗

不是告诉你了吗

	public void sendJson(HttpServletResponse response, String json)
			throws IOException {
		response.setContentType("application/json;charset=utf-8");
		response.getWriter().write(json);
	}

好的  我自己测试下

springmvc返回json数据的配置 在springmvc_servlet.xml怎么配置
2楼的是正解
springmvc返回json数据的配置 在springmvc_servlet.xml怎么配置
我们 项目是   response.setContentType(“application/json;charset=utf-8”);   
springmvc返回json数据的配置 在springmvc_servlet.xml怎么配置
引用 楼主 hadoop333 的回复:

我看51cto讲spingmvc返回json数据是这么配置的     大家项目怎么配置的啊

    <!–处理直接返回json格式字符串–>  
   <bean id=”stringHttpMessageConverter” class=”org.springframework.http.converter.StringHttpMessageConverter” >  
    <property name=”supportedMediaTypes”>  
          <list>  
               <value>text/plain;charset=UTF-8</value>  
          </list>  
        </property>  
</bean>

<!– 处理json –>  
   <bean id=”mappingJacksonHttpMessageConverter” class=”org.springframework.http.converter.json.MappingJacksonHttpMessageConverter”>  
      </bean>  

    <!– 启动Spring MVC的注解功能,完成请求和注解POJO的映射–>  
    <bean class=”org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter”>  
       <property name=”messageConverters”>  
           <list>  
               <ref bean=”stringHttpMessageConverter” />  
               <ref bean=”mappingJacksonHttpMessageConverter” />  
           </list>  
       </property>  
    </bean>  

你这配置貌似有问题啊   我这报错

springmvc返回json数据的配置 在springmvc_servlet.xml怎么配置
好像不用配置配置文件吧..
加上json的jar包然后 写到浏览器就可以了啊
springmvc返回json数据的配置 在springmvc_servlet.xml怎么配置
引用 12 楼 liyantianmin 的回复:

好像不用配置配置文件吧..
加上json的jar包然后 写到浏览器就可以了啊

哥们   你们怎么用的啊   给个例子啊 

springmvc返回json数据的配置 在springmvc_servlet.xml怎么配置
引用 13 楼 hadoop333 的回复:
Quote: 引用 12 楼 liyantianmin 的回复:

好像不用配置配置文件吧..
加上json的jar包然后 写到浏览器就可以了啊

哥们   你们怎么用的啊   给个例子啊 

直接把jackson-all-1.6.0.jar导进去然后

//把user以json形式返回
	@RequestMapping(value = "/json", method = RequestMethod.POST)
	@ResponseBody
	public void showbyjson(String name, User user,HttpServletRequest request,HttpServletResponse response)
			throws Exception {
	            //业务处理

		String res = Jsonutil.beanToJson(user);
		response.setCharacterEncoding("UTF-8");//处理中文编码问题
		response.getWriter().write(res);
	}
springmvc返回json数据的配置 在springmvc_servlet.xml怎么配置
引用 14 楼 liyantianmin 的回复:
Quote: 引用 13 楼 hadoop333 的回复:
Quote: 引用 12 楼 liyantianmin 的回复:

好像不用配置配置文件吧..
加上json的jar包然后 写到浏览器就可以了啊

哥们   你们怎么用的啊   给个例子啊 

直接把jackson-all-1.6.0.jar导进去然后

//把user以json形式返回
	@RequestMapping(value = "/json", method = RequestMethod.POST)
	@ResponseBody
	public void showbyjson(String name, User user,HttpServletRequest request,HttpServletResponse response)
			throws Exception {
	            //业务处理

		String res = Jsonutil.beanToJson(user);
		response.setCharacterEncoding("UTF-8");//处理中文编码问题
		response.getWriter().write(res);
	}

 Jsonutil.beanToJson    你这个方法怎么写的啊   能贴下源码吗   谢谢

springmvc返回json数据的配置 在springmvc_servlet.xml怎么配置
    public static String beanToJson(Object obj,Boolean createNew) throws Exception { 
        try { 
            ObjectMapper objectMapper = getMapperInstance(createNew); 
            String json =objectMapper.writeValueAsString(obj); 
            return json; 
        } catch (Exception e) { 
            throw new Exception(e.getMessage()); 
        }        
    } 
       

springmvc返回json数据的配置 在springmvc_servlet.xml怎么配置
30分
引用 15 楼 hadoop333 的回复:
Quote: 引用 14 楼 liyantianmin 的回复:
Quote: 引用 13 楼 hadoop333 的回复:
Quote: 引用 12 楼 liyantianmin 的回复:

好像不用配置配置文件吧..
加上json的jar包然后 写到浏览器就可以了啊

哥们   你们怎么用的啊   给个例子啊 

直接把jackson-all-1.6.0.jar导进去然后

//把user以json形式返回
	@RequestMapping(value = "/json", method = RequestMethod.POST)
	@ResponseBody
	public void showbyjson(String name, User user,HttpServletRequest request,HttpServletResponse response)
			throws Exception {
	            //业务处理

		String res = Jsonutil.beanToJson(user);
		response.setCharacterEncoding("UTF-8");//处理中文编码问题
		response.getWriter().write(res);
	}

 Jsonutil.beanToJson    你这个方法怎么写的啊   能贴下源码吗   谢谢

package com.springmvc.others;

import org.codehaus.jackson.map.ObjectMapper;

import com.srpingmvc.entry.User;

public class Jsonutil {

	private static ObjectMapper mapper; 
    
    /**
     * 获取ObjectMapper实例
     * @param createNew 方式:true,新实例;false,存在的mapper实例
     * @return
     */ 
    public static synchronized ObjectMapper getMapperInstance(boolean createNew) {    
        if (createNew) {    
            return new ObjectMapper();    
        } else if (mapper == null) {    
            mapper = new ObjectMapper();    
        }    
        return mapper;    
    }  
       
    /**
     * 将java对象转换成json字符串
     * @param obj 准备转换的对象
     * @return json字符串
     * @throws Exception 
     */ 
    public static String beanToJson(Object obj) throws Exception { 
        try { 
            ObjectMapper objectMapper = getMapperInstance(false); 
            String json =objectMapper.writeValueAsString(obj); 
            return json; 
        } catch (Exception e) { 
            throw new Exception(e.getMessage()); 
        }        
    } 
       
    /**
     * 将java对象转换成json字符串
     * @param obj 准备转换的对象
     * @param createNew ObjectMapper实例方式:true,新实例;false,存在的mapper实例
     * @return json字符串
     * @throws Exception
     */ 
    public static String beanToJson(Object obj,Boolean createNew) throws Exception { 
        try { 
            ObjectMapper objectMapper = getMapperInstance(createNew); 
            String json =objectMapper.writeValueAsString(obj); 
            return json; 
        } catch (Exception e) { 
            throw new Exception(e.getMessage()); 
        }        
    } 
       
    /**
     * 将json字符串转换成java对象
     * @param json 准备转换的json字符串
     * @param cls  准备转换的类
     * @return 
     * @throws Exception 
     */ 
    public static Object jsonToBean(String json, Class<?> cls) throws Exception { 
        try { 
        ObjectMapper objectMapper = getMapperInstance(false); 
        Object vo = objectMapper.readValue(json, cls); 
        return vo; 
        } catch (Exception e) { 
            throw new Exception(e.getMessage()); 
        }    
    } 
       
    /**
     * 将json字符串转换成java对象
     * @param json 准备转换的json字符串
     * @param cls  准备转换的类
     * @param createNew ObjectMapper实例方式:true,新实例;false,存在的mapper实例
     * @return
     * @throws Exception
     */ 
    public static Object jsonToBean(String json, Class<?> cls,Boolean createNew) throws Exception { 
        try { 
        ObjectMapper objectMapper = getMapperInstance(createNew); 
        Object vo = objectMapper.readValue(json, cls); 
        return vo; 
        } catch (Exception e) { 
            throw new Exception(e.getMessage()); 
        }    
    } 

	public static void main(String[] args) throws Exception {
		User u = new User();
		u.setName("ds");
		u.setId(1);

		String re=beanToJson(u);
		System.out.println(re);
	}
}


springmvc返回json数据的配置 在springmvc_servlet.xml怎么配置
求给分
springmvc返回json数据的配置 在springmvc_servlet.xml怎么配置
 

引用 18 楼 liyantianmin 的回复:

求给分

谢谢   一定 给分啊   
objectMapper.writeValueAsString       这个方法源码是啥啊 

springmvc返回json数据的配置 在springmvc_servlet.xml怎么配置
引用 19 楼 hadoop333 的回复:

 

Quote: 引用 18 楼 liyantianmin 的回复:

求给分

谢谢   一定 给分啊   
objectMapper.writeValueAsString       这个方法源码是啥啊 

那是jackson自己的方法,你可以下载源代码看看

springmvc返回json数据的配置 在springmvc_servlet.xml怎么配置
a)引入Jar,java对象和json对象可以通过注解相互转化

jackson-core-asl-1.9.13.jar

jackson-mapper-asl-1.9.13.jar

b)springmvc-servlet.xml文件配置注解支持

<mvc:annotation-driven/>

c)使用注解

@RequestBody                 将提交中的json数据自动封装到java对象中

注意@RequestBody接收的是一个Json对象的字符串,而不是一个Json对象。

@ResponseBody               将返回的java对象自动转换为json串

 

@Controller

public class AjaxController {

         @Resource

         PersonService personService;

         

         @RequestMapping(“/ajaxresponse.action”)

         @ResponseBody  

         public List<Person> ajaxresponse(HttpServletRequest request){  

                   List<Person> pList = personService.listAll();

                   

                   return pList;  

         }  

         

         @RequestMapping(“/ajaxrequest.action”) 

    public void ajaxrequest(@RequestBody List<Person> persons) {

                   System.out.println(persons.size());

    } 

}

springmvc返回json数据的配置 在springmvc_servlet.xml怎么配置
public static String toJson(Object o) {
     Gson gson = new GsonBuilder().registerTypeAdapter(
     Date.class, new DateSerializer()).create();
        return gson.toJson(o);
    }
    
直接这样就可以了

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明springmvc返回json数据的配置 在springmvc_servlet.xml怎么配置
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!