SpringMVC注解开发初步
一、(补充)视图解析器---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
⑤请求中所携带的请求参数
前三种实现方式:
@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:零散参数
@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
public class UserInfo { private String uname; public String getUname() {
return uname;
} public void setUname(String uname) {
this.uname = uname;
}
FirstController控制器类方法参数是实体类对象:
@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配置编码过滤器---CharacterEncodingFilter
SpringMVC注解开发初步的更多相关文章
- Spring+SpringMVC+MyBatis深入学习及搭建(十六)——SpringMVC注解开发(高级篇)
转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/7085268.html 前面讲到:Spring+SpringMVC+MyBatis深入学习及搭建(十五)——S ...
- springmvc学习笔记(13)-springmvc注解开发之集合类型參数绑定
springmvc学习笔记(13)-springmvc注解开发之集合类型參数绑定 标签: springmvc springmvc学习笔记13-springmvc注解开发之集合类型參数绑定 数组绑定 需 ...
- springmvc学习笔记(12)-springmvc注解开发之包装类型參数绑定
springmvc学习笔记(12)-springmvc注解开发之包装类型參数绑定 标签: springmvc springmvc学习笔记12-springmvc注解开发之包装类型參数绑定 需求 实现方 ...
- springmvc学习笔记(10)-springmvc注解开发之商品改动功能
springmvc学习笔记(10)-springmvc注解开发之商品改动功能 标签: springmvc springmvc学习笔记10-springmvc注解开发之商品改动功能 需求 开发mappe ...
- Spring+SpringMVC+MyBatis深入学习及搭建(十五)——SpringMVC注解开发(基础篇)
转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/7065294.html 前面讲到:Spring+SpringMVC+MyBatis深入学习及搭建(十四)--S ...
- 2.SpringMVC注解开发
1.创建SpringMVC项目 配置web.xml <?xml version="1.0" encoding="UTF-8"?> <web-a ...
- SpringMvc注解开发
1.四大注解的定义 (1)Controller注解:该注解使用在一个类上面,参数为value,值为访问该controller的名称,默认为空,如果为空 则值为该controller类名的首字母小写的值 ...
- springMVC注解初步
一.(补充)视图解析器---XmlViewResolver 作用:分离配置信息. 在视图解析器---BeanNameViewResolver的基础之上进行扩充,新建一个myView.xml分离信息 在 ...
- SpringMVC-Mybatis整合和注解开发
SpringMVC-Mybatis整合和注解开发SpringMVC-Mybatis整合整合的思路在mybatis和spring整合的基础上 添加springmvc.spring要管理springmvc ...
随机推荐
- springmvc+jpa实现分页的两种方式
1.工具类 public final class QueryTool { public static PageRequest buildPageRequest(int pageNumber, int ...
- Day9 summary
昨天又翻出收藏夹里一个叫“谷子粒”的bloghttp://1.guzili.sinaapp.com/?p=128#more-128,链接是博主整理的机器学习方面的热点微博,相当的干货.要说我是从知乎对 ...
- Java 编译报错:illegal character
1.检查编译版本:1.5还是1.6 2.重新引用一下Jar包
- fopen\fread\fwrite\fscanf\fprintf\fseek\feof\rewind\fgets\fputc等系列函数使用总结
转载自:http://blog.csdn.net/xidianzhimeng/article/details/23541289 1 fopen 函数原型:FILE * fopen(const char ...
- mysql数据库安装方法
前言 MySQL 有三种安装方式:RPM安装.二进制包安装.源码包安装.这3种种方式各有特色,主要特点参考下表.实际应用中,可以根据你所用的主机环境进行优化,选择 最佳的配置值,安装定制更灵活.访问M ...
- BZOJ 3390: [Usaco2004 Dec]Bad Cowtractors牛的报复
题目 3390: [Usaco2004 Dec]Bad Cowtractors牛的报复 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 53 Solve ...
- find-a-jar-file-given-the-class-name
Save this as findclass.sh (or whatever), put it on your path and make it executable: #!/bin/sh find ...
- python3 selenium 登录操作
使用场景: 测试过程中,有的时候需要登录才可以进行其他操作 举例说明: # coding=utf-8 """ :author: 花花测试 :time: 2017.05.0 ...
- MySQL语法大全_自己整理的学习笔记(MySQL语句 整理二)
select * from emp; #注释 #--------------------------- #----命令行连接MySql--------- #启动mysql服务器 net start m ...
- div层上下左右居中
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...