如果运气差的话,那就用努力来弥补,实力强的话,可以打败运气的。
周四的时候走在路上,没有接到面试电话,在打过去就打不通了,还有一个电话面试不知道是不是要等到明年。
起风了 唯有努力生存
这几天一直在和前端的同学合作写使用cookie记住密码的功能,遇到了前端确实已经传数据过来,但我后台拿到的数据为null。原因是前端传的是json数据格式,不是form-data格式,我原以为只有在配置文件中加上这段话,就能自动将json转化为对象
<!--将json字符串转成java对象-->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
<property name="messageConverters">
<list>
<ref bean="mappingJacksonHttpMessageConverter"/>
</list>
</property>
</bean>
<!--json转化器,可以将结果转化-->
<bean id="mappingJacksonHttpMessageConverter"
class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/html;charset=UTF-8</value>
<value>application/json;charset=utf-8</value>
</list>
</property>
</bean>
MappingJackson2HttpMessageConverter需要和@RequestBody一起使用。当时和前端说我没有错,真是蜜汁自信啊
介绍一下@RequestBody的作用,第一次使用这个注解
1)
该注解用于读取Request请求的body部分,使用自己配置的MappingJackson2HttpMessageConverter进行解析,然后把相应的数据绑定到要返回的对象上
这里把解析以后的数据绑定到了Administrator对象上了
2)在把MappingJackson2HttpMessageConverter返回的对象数据绑定到Controller中的方法参数上
用法:
public String save (@RequestBody Administrator administrator, HttpServletRequest httpServletRequest)
顺便在介绍一下@ResponseBody注解
作用:将controller中方法返回的对象,通过MappingJackson2HttpMessageConverter转化为指定的格式,写入到response对象的body数据区
3)当用get、post方式提交时,根据request header Content-Type的值来判断:
①application/x-www-form-urlencoded, 可选(即非必须,因为这种情况的数据@RequestParam, @ModelAttribute也可以处理,当然@RequestBody也能处理);
②multipart/form-data, 不能处理(即使用@RequestBody不能处理这种格式的数据);
③其他格式, 必须(其他格式包括application/json, application/xml等)使用@RequestBody来处理
我这里前端js的header为:
xhr.setRequestHeader("Content-type", "application/json");
所以我在controller中必须使用@RequestBody注解了
顺便在介绍一下@ResponseBody注解
作用:将controller中方法返回的对象,通过MappingJackson2HttpMessageConverter转化为指定的格式,写入到response对象的body数据区
网友评论