首页 > 编程知识 正文

springmvc注解扫描,springmvc注解responsebody

时间:2023-05-05 12:52:15 阅读:226867 作者:4070

一、注解
1、Controller
它把用户请求的数据经过业务处理层处理之后封装成一个Model (请求数据相当于request?),然后再把该Model 返回给对应的View(jsp地址) 进行展示。在SpringMVC 中提供了一个非常简便的定义Controller 的方法,你无需继承特定的类或实现特定的接口,只需使用@Controller 标记一个类是Controller ,然后使用@RequestMapping 和@RequestParam 等一些注解用以定义URL 请求和Controller 方法之间的映射,这样的Controller 就能被外界访问到。此外Controller 不会直接依赖于HttpServletRequest 和HttpServletResponse 等HttpServlet 对象,它们可以通过Controller 的方法参数灵活的获取到。

在上面的示例中,@Controller 是标记在类MyController 上面的,所以类MyController 就是一个SpringMVC Controller 对象了,然后使用@RequestMapping(“/showView”) 标记在Controller 方法上,表示当请求/showView.do 的时候访问的是MyController 的showView 方法

分发处理器将会扫描使用了该注解的类的方法,并检测该方法是否使用了@RequestMapping 注解。@Controller 只是定义了一个控制器类,而使用@RequestMapping 注解的方法才是真正处理请求的处理器

单单使用@Controller 标记在一个类上还不能真正意义上的说它就是SpringMVC 的一个控制器类,因为这个时候Spring 还不认识它。这个时候就需要我们把这个控制器类交给Spring 来管理。
第一种方式是在SpringMVC 的配置文件中定义MyController 的bean 对象。

第二种方式是在SpringMVC 的配置文件中告诉Spring 该到哪里去找标记为@Controller 的Controller 控制器。

2、RequsetMapping
当@RequestMapping 标记在Controller 类上的时候,里面使用@RequestMapping 标记的方法的请求地址都是相对于类上的@RequestMapping 而言的;当Controller 类上没有标记@RequestMapping 注解时,方法上的@RequestMapping 都是绝对路径。

使用URL模板
URI 模板就是在URI 中给定一个变量,然后在映射的时候动态的给该变量赋值。
路径中使用url模板

使用通配符来使用URL模板

使用@RequestParam绑定HttpServletRequest请求参数到控制器方法参数(RequestMapper里面的值可以随意不用和注解名一样这只是例子)

3)使用@CookieValue绑定cookie的值到Controller方法参数

4)使用@RequestHeader注解绑定HttpServletRequest头信息到Controller参数
@RequestMapper的一些高级应用
在RequestMapping 中除了指定请求路径value 属性外,还有其他的属性可以指定,如params 、method 和headers 。这样属性都可以用于缩小请求的映射范围。


6)以RequestMapper标记的处理器方法支持的参数类型和返回类型

使用@ModelAttribute和@SessionAttributes传递和保存数据


@ModelAttribute执行在处理器方法之前,@SessionAttributes在处理器方法调用第一次之后spring才会把模型中对应的属性添加到session中第二次执行就会又值了

3、ResponseBody
@responseBody注解的作用是将controller的方法返回的对象通过适当的转换器转换为指定的格式之后,写入到response对象的body区,通常用来返回JSON数据或者是XML数据。
这个注解表示该方法的返回结果直接写入HTTP response body中,一般在异步获取数据时使用。
在使用@RequestMapping后,返回值通常解析为跳转路径。加上@responsebody后,返回结果直接写入HTTP response body中,不会被解析为跳转路径。比如异步请求,希望响应的结果是json数据,那么加上@responsebody后,就会直接返回json数据。

4、SuppressWarnings(非springMVC注解 java注解)
作用:压制警告
@SuppressWarnings(“unchecked”) [^ 抑制单类型的警告]
2. @SuppressWarnings(value={“unchecked”,“rawtypes”}) [^ 抑制多类型的警告]
3. 3. @SuppressWarnings(“all”) [^ 抑制所有类型的警告]

好处:消除前面警告的“感叹号”使断点更好打更清楚。
防止你对警告的无动于衷,加深程序员的警告判断意识。

二、Model:
Struts2
HttpServletRequest request

Springmvc
Model model

Mybatis <![CDATA[ ]]>

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。