博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SpringMVC学习指南【笔记3】基于注解的控制器
阅读量:5882 次
发布时间:2019-06-19

本文共 2289 字,大约阅读时间需要 7 分钟。

Spring MVC基于注解的控制器的优点:

1、一个控制器类可以处理多个动作;

2、基于注解的控制器的请求映射不需要存储在配置文件中。使用RequestMapping注释类型可以对一个方法进行请求处理。

 

Controller注解类型,org.springframework.stereotype.Controller注解类型用于指示Spring类的实例是一个控制器。

Spring使用扫描机制来找到应用程序中所有基于注解的控制器类。为了保证Spring能找到控制器,首先要在Spring MVC的配置文件中声明spring-context,然后要应用<componet-scan/>元素。

例如:

要确保所有控制器类都在基本包下,并且不要指定一个太广泛的基本包,这样会使Spring MVC扫描了无关的包。

 

RequestMapping注解类型,映射一个请求和一种方法。使用org.springframework.web.bind.annotation.RequestMapping注解类型映射的URI与方法。

value属性是RequestMapping的默认属性,若只有唯一的属性,则可以省略属性名称,但如果有超过一个属性时就必须写上value属性名称。

@RequestMapping(value="/companySales")

@RequestMapping("/companySales")

method属性用来知识该方法仅处理哪些HTTP方法,若method属性只有一个HTTP方法值,则无需花括号。

@RequestMapping(value="/companySales",method={RequestMethod.POST,RequestMethod.PUT})

@RequestMapping(value="/companySales",method=RequestMethod.POST)

 

每个请求方法可以有多个不同类型的参数,以及一个多种类型的返回结果。例如,如果在请求处理方法中需要访问HttpSession对象,则可以添加的HttpSession作为参数,Spring会将对象正确地传递给方法。

 

可以在请求处理方法中出现的参数类型有:

ServletRequest、HttpServletRequest、ServletResponse、HttpServletResponse、HttpSession、WebRequest、NativeWebRequest、Locale、Reader、Writer、InputStream、OutputStream、Principal、Model、ModelMap、RedirectAttributes、Errors、BindingResult、SessionState、UriComponentsBuilder等等。

请求处理方法可以返回的类型对象有:

ModelAndView、Model、Map包含模型的属性、View、代表逻辑视图名的String、void、Callable、DeferredResult、提供对Servlet的访问,以响应HTTP头部和内容HttpEntity或ResonseEntity对象、其它任意类型,Spring将其视作输出给View的对象模型。

 

springmvc-config.xml文件

以上两个<resources/>元素,第一个确保在/css目录下所有文件可见,第二个允许显示所有的.html文件。

注意:如果没有<annotation-driven />,<resources/>元素会阻止任意控制器被调用。若不使用<resources/>,则不需要<annotation-driven />。

 

将依赖注入到Spring MVC控制器的最简单的方法是通过注解@Autowired到字段或方法。

Autowired注解类型属于org.springframework.beans.factory.annotation

为了能被作为依赖注入,类必须要注明为@Service。

Service注解类型是org.springframework.stereotype的成员

Spring MVC配置文件有两个<component-scan/>元素:一个用于扫描控制器类,另一个用于扫描服务类。

 

转发和重定向的区别

转发比重定向快,因为重定向经过客户端,而转发没有。但有时采用重定向更好,若需要重定向到一个外部网站则无法使用转发。另一个重定向的使用场景是避免用户重新加载页面时再次调用同样的动作。

要使用flash属性,必须在spring mvc配置文件中添加<annotation-driven/>元素,还必须在方法上添加一个新的参数类型org.springframework.web.servlet.mvc.support.RedirectAttributes

 

@RequestParam

@PathVariable

@ModelAttribute

 

转载于:https://www.cnblogs.com/xsl1995/p/10164699.html

你可能感兴趣的文章
通过爬妹子图片来学习async/await
查看>>
【python】编程语言入门经典100例--35
查看>>
cookie增加Secure属性
查看>>
360浏览器兼容模式 - 兼容问题
查看>>
WebLogic11g-负载分发
查看>>
appcan是什么
查看>>
美国破获世纪“银行大劫案”隐形罪犯不再拿刀枪
查看>>
我的友情链接
查看>>
linux系统网络服务命令(一)
查看>>
IT讲师韩顺平:我为什么辞去百万年薪,自己创业?
查看>>
工作记录
查看>>
【go语言】读书随笔
查看>>
Activity猫的一生-故事解说Activity生命周期
查看>>
python:使用socket模块,进行服务器与客户端简单交互
查看>>
FTP服务器的部署和维护心得
查看>>
第一部分 思科九年 一(15)
查看>>
IE6/IE7/IE8/Firefox/Chrome/Safari的CSS hack兼容一览表
查看>>
关于SELECT子句中使用聚合函数
查看>>
JavaScript
查看>>
final详解
查看>>