一、(补充)视图解析器---XmlViewResolver作用:分离配置信息。在视图解析器---BeanNameViewResolver的基础之上进行扩充,新建一个myView.xml分离信息 在applicationContext.xml中进行配置XmlViewResolver,以及处理器配置myView.xml:实现效果:
二、SpringMVC注解开发 常用的两个注解:@Controller:是SpringMVC中最常用的注解,它可以帮助定义当前类为一个Spring管理的bean,同时指定该类是一个控制器,可以用来接受请求。标识当前类是控制层的一个具体的实现@requestMapping:放在方法上面用来指定某个方法的路径,当它放在类上的时候相当于命名空间需要组合方法上的requestmapping来访问 扩充:
| 注解名称 | 作用 |
| @Controller | 注解标明该类需要Spring容器自动加载,将一个类成为 Spring 容器的 Bean。 |
| @RequestMapping | 可以标注在类定义处,将 Controller 和特定请求关联起来;还可以标注在方法签名处。所以在类声明处标注的 @RequestMapping 相当于让 POJO 实现了 Controller 接口,而在方法定义处的 @RequestMapping 相当于让 POJO 扩展 Spring 预定义的 Controller(如 SimpleFormController 等)。 |
| @Resource | 用来注解该属性的SETTER方法参数来源于Spring Bean |
| @ModelAttribute | ①绑定请求参数到命令对象:放在功能处理方法的入参上时,用于将多个请求参数绑定到一个命令对象,从而简化绑定流程,而且自动暴露为模型数据用于视图页面展示时使用;②暴露表单引用对象为模型数据:放在处理器的一般方法(非功能处理方法)上时,是为表单准备要展示的表单引用对象,如注册时需要选择的所在城市等,而且在执行功能处理方法(@RequestMapping注解的方法)之前,自动添加到模型对象中,用于视图页面展示时使用;③暴露@RequestMapping方法返回值为模型数据:放在功能处理方法的返回值上时,是暴露功能处理方法的返回值为模型数据,用于视图页面展示时使用。 |
| @SessionAttributes | 代表被注解对象会被存放到HttpSession作用域 |
| @PathVariable | 用于将请求URL中的模板变量映射到功能处理方法的参数上 |
| @requestParam | 用于将请求参数区数据映射到功能处理方法的参数上 |
入门案例: ① Springmvc的包扫描器:由于使用了基于注解的Controller,所以这里指定了需要被扫描的包路径,如果有多个可以使用逗号分隔。
处理器类:[一个处理类中也可定义N个处理器方法]
2、请求中的通配符用法 实现效果:
3、请求中方式的定义对于@RequestMapping,有一个属性method,用于对被注解方法所处理请求的提交方式进行限制,只有满足该method属性指定的提交方式,才会执行被注解方法。 method属性的取值为RequestMethod,是一个枚举常量。常用值为 RequestMethod.GET 与 RequestMethod.POST
4、处理器方法的参数 处理器方法中常用的参数有五类,这些参数会在系统调用时由系统自动赋值,即程序员可在方法内直接使用:①HttpServletRequest ②HttpServletResponse③HttpSession ④用于承载数据的Model ⑤请求中所携带的请求参数前三种实现方式:
| 12345678 | @RequestMapping(value="/one.do",method=RequestMethod.GET)public String doFirst(HttpServletRequest request,HttpServletResponse response,HttpSession session){ System.out.println(request); System.out.println(response); System.out.println(session); return "index";} |
用于承载数据的Model:零散参数
| 12345678910 | @RequestMapping(value="/one.do",method=RequestMethod.GET) public String doFirst(Model model){ Map<String,Object> datas=new HashMap<String, Object>(); datas.put("uname", "逗比 ^^"); model.addAllAttributes(datas); System.out.println(model); return "index"; } |
对象参数:装配成实体自定义实体类:UserInfo
| 123456789101112 | public class UserInfo { private String uname; public String getUname() { return uname; } public void setUname(String uname) { this.uname = uname; } |
FirstController控制器类方法参数是实体类对象:
| 12345678910111213 | @Controller@RequestMapping(value="/con")public class FirstController{ @RequestMapping(value="/dofirst.do") public String doFirst(UserInfo info){ System.out.println(info.getUname()); return "index"; } } |
大配置同理:jsp页面form表单提交:实现效果:控制台会出现乱码情况,如何解决?
5、解决乱码问题:Web.xml配置编码过滤器---CharacterEncodingFilterSpringMVC+MyBatis集成配置 http://www.linuxidc.com/Linux/2016-09/135212.htmSpringMVC总结篇 http://www.linuxidc.com/Linux/2016-06/132659.htmSpring+SpringMVC企业快速开发架构搭建 http://www.linuxidc.com/Linux/2015-09/122942.htmSpringMVC的乱码处理 http://www.linuxidc.com/Linux/2015-07/120542.htmSpring MVC+Spring3+Hibernate4开发环境搭建 http://www.linuxidc.com/Linux/2013-07/87119.htmSpring MVC整合Freemarker基于注解方式 http://www.linuxidc.com/Linux/2013-02/79660.htm基于注解的Spring MVC简单介绍 http://www.linuxidc.com/Linux/2012-02/54896.htmSpringMVC详细示例实战教程 http://www.linuxidc.com/Linux/2015-06/118461.htmSpringMVC错误页面配置 http://www.linuxidc.com/Linux/2016-12/138097.htmSpringMVC 异常处理 http://www.linuxidc.com/Linux/2015-06/119049.htmSpringMVC框架入门配置 IDEA下搭建Maven项目 http://www.linuxidc.com/Linux/2016-09/134918.htm
本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-01/139335.htm