zoukankan      html  css  js  c++  java
  • @Controller和@RestController

    @RestController=@Controller+@ResponseBody

    1.使用RestController时,返回到前端的内容是Return里的内容,无法返回jsp/html等页面,

    此时的在application-spring.xml的配置文件中,不需要配置视图解析器

    1  <!-- 3.配置jsp 显示ViewResolver -->
    2 <bean id="viewResolver"
    3           class="org.springframework.web.servlet.view.UrlBasedViewResolver">
    4         <property name="viewClass"
    5                   value="org.springframework.web.servlet.view.JstlView" />
    6         <property name="prefix" value="/WEB-INF/jsp/" />
    7         <property name="suffix" value=".jsp" />
    8 </bean>

    注释:视图解析器会根据控制层返回的字符串进行解析,如果返回的是return "hello",经过解析器会自动加上前缀和后缀,变成/WEB-INF/view/hello.jsp。

    2.如果需要返回指定页面,可使用@Controller,配合上述的视图解析器, 如果需要返回JSON,XML或自定义mediaType内容到页面,则需要在对应的方法上加上@ResponseBody注解。

    @responsebody表示该方法的返回结果直接写入HTTP response body中
    一般在异步获取数据时使用,在使用@RequestMapping后,返回值通常解析为跳转路径,加上@responsebody后返回结果不会被解析为跳转路径,而是直接写入HTTP response body中响应给客户端。比如异步获取json数据,加上@responsebody后,会直接返回json数据。使用时机:返回的数据不是html标签的页面,而是其他某种格式的数据时(如json、xml等)使用;

     1 //控制层,使用controller
     2 @RequestMapping(value="/request")
     3 @ResponseBody
     4 public String test(){
     5    
     6     String str = "responseBody";
     7     return str;
     8 }
     9 
    10 //前台
    11 $.ajax({
    12    type:"post",
    13    url :"/request",
    14    dataType:"JSON",
    15    success:function(resp){
    16         if(resp){
    17             console.log(resp);
    18         }
    19    }
    20 });

    最后在控制台会输出“responseBody”字符串

  • 相关阅读:
    Android5.0录屏方案
    Android点阵屏效果的控件
    Android绘制View相关的几个问题
    AndroidStudio导入第三方开源库
    第六百二十三天 how can I坚持
    第六百二十二天 how can I 坚持
    第六百二十一天 how can I 坚持
    第六百二十天 how can I 坚持
    第六百一十九天 how can I 坚持
    第六百一十八天 how can I 坚持
  • 原文地址:https://www.cnblogs.com/alice-cj/p/11485918.html
Copyright © 2011-2022 走看看