struts2与springMvc下的AJax异步数据交互2

struts2与springMvc下的AJax异步数据交互2

         2.springMVC下的ajax异步数据通信

             ① 第一种与 Struts2一样使用 Servlet  的输出流,即response.getWrite()  来输出json格式字符串

             ②第二种 ,在springMVC-Servlet.xml中配置

<!-- 返回json 方法二 需要导入 jackson-annotations.jar,jackson-core.jar,jackson-databind.jar-->  
   <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping" />
    <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
        <property name="messageConverters">
            <list>
            <!-- 从请求和相应读取和编写字符串 -->
                <bean class="org.springframework.http.converter.StringHttpMessageConverter">
                    <property name="supportedMediaTypes">
                        <list>
                            <value>text/html; charset=UTF-8</value>
                            <value>application/json;charset=UTF-8</value>
                        </list>
                    </property>
                </bean>
                <!--  用于将对象转化为json-->
                <bean 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>
            </list>
        </property>
    </bean> 
在controller中,使用@ResponseBody返回一个对象

 @RequestMapping("ajaxPost3")
    public @ResponseBody UserEntity  add3(String userName,String passWord,HttpServletResponse response,Map<String,Object> map){
    System.out.println("add3:---user:--"+userName+"password:--"+passWord);
    UserEntity  user=new UserEntity();
    user.setUserName(userName);
    user.setPassWord(passWord);
   
    return user;
    }

  ③也是这三个包的,另外一种返回json字符串的方式 (不用任何配置)    

  ObjectMapper  mapper=new ObjectMapper();

  User  user=XXXXService.getUser();

  response.setContentType("text/html;charset=utf-8");  

  mapper.writerValue(response.getWriter(),user);

   ④使用mvc自带的配置和@ResponseBody

   <mvc:annotation-driven/>//提供数据绑定支持,@NumberFormatannotation支持,@DateTimeFormat支持,@Valid支持,读写XML的支持(JAXB),读写JSON的支持(Jackson)

  注意(<context:component-scan base-package=”XX.XX”/> 重叠了<context:annotation-config/>的功能 ---》声明支持一些通用的注解例如 @Required@Autowired@PostConstruct, and so on.    ) 

                    

猜你喜欢

转载自blog.csdn.net/qq_25717027/article/details/75349907