自从 MVC 这个概念提出来之后 struts1.X struts2.X jsf 。。。。。
这个view 层的技术一个接一个! 都用过!不敢说哪个绝对的强悍!
要看业务,和整体的设计!
最近公司要求开发个新系统!
并且 不沿用以前的框架了!闲时 用了下Spring3 的 MVC
感觉还可以!大有前途! 尤其是加上3.0 以后的 加上annotation + rest 如虎添翼!
个人理解比较狭窄!不当之处!请绕过!
以下是 网上当的一些资料和 自己的一些总结:
前奏:
导入相应的包
1.0 默认的mvc 配置文件:
web.xml 中定义了一个名为 annomvc 的 Spring MVC 模块,按照 Spring MVC 的契约,
需要在 WEB-INF/annomvc-servlet.xml 配置文件中定义 Spring MVC 模块的具体配置
2.0 包级别的扫描,和 注释的功能的开启:
<context:component-scan base-package="com.***.web"/>
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" />
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />
<context:annotation-config/>
3.0 定义视图的前缀 ,后缀
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/WEB-INF/jsp/" p:suffix=".jsp"/>
@Controller // 注释为controller
@Autowired // 注入属性 去xml 找那个像对应的 bean 类型匹配
1.0 处理多个请求
|: 在每个方法前面使用 @RequestMapping("/名称.do") 不同的名称 处理不同的请求 缺点:xxx.do 太多不利于 跟踪 ,复制程度增加
||: 在controller 类名前面定义 @RequestMapping("/名称.do")在方法前添加注解
@RequestMapping(params = "method=listAllBoard") 则处理 有此参数的请求 多一个参数思路清楚
2.0 处理不同的http 请求:
|: 在方法前面增加注释:RequestMethod 有POST,get,put.... 如:@RequestMapping(params = "method=createTopic",method = RequestMethod.POST)
3.0 参数处理:(默认这样处理,也是 约定优于设计原则 自动转换类型) 自由选择
|: 普通属性: 如果入参是基本数据类型(如 int、long、float 等),URL 请求参数中一定要有对应的参数,否则将抛出 TypeMismatchException 异常,提示无法将 null 转换为基本数据类型。
||: 对象及属性: Userbean 的 userId 属性的类型是基本数据类型,但如果 URL 中不存在 userId 参数,Spring 也不会报错,此时 Userbean.userId 值为 0。如果 Userbean 对象拥有一个 dept.deptId 的级联属性,那么它将和 dept.deptId参数绑定。
4.0 参数处理:(明确指定参数 匹配 自动转换类型)
|: 普通属性 和 对象及属性: @RequestParam("id") 注解,所以它将和 id 的 URL 参数绑定
5.0 绑定域中的某个属性:
|: request ModelMap 类,它作为通用的模型数据承载对象,传递数据供视图所用 代替 request.setParam
||: Session @SessionAttributes("currUser") //①将ModelMap中属性名为currUser的属性 放到Session属性列表中,以便这个属性可以跨请求访问 (类名前面写)
|||:session 多个参数 !@SessionAttributes({“attr1”,”attr2”})。
||||: 取值绑定到方法上 (@ModelAttribute("currUser") User user)
一些常用的注解 及解释:
1.0 @Autowired 将分别寻找和它们类型匹配的 Bean 注入 ---------- ByType
如果有多个匹配结果 或者没结果 BeanCreationException 异常
@Autowired(required = false),这等于告诉 Spring:在找不到匹配 Bean 时也不报错。
@Qualifier 注释指定注入 Bean 的名称 ---------- ByName
2.0 @Autowired 可以对成员变量、方法以及构造函数进行注释,
@Qualifier 的标注对象是成员变量、方法入参、构造函数入参
@Autowired 和 @Qualifier 结合使用时,自动注入的策略就从 byType 转变成 byName
3.0 @Resource 默认按 byName 自动注入
spring3 缓存详解 http://yxif.com
分享到:
相关推荐
Spring3 MVC 学习笔记 入门 Spring3 MVC 学习笔记 入门
spring mvc学习笔记spring mvc学习笔记spring mvc学习笔记spring mvc学习笔记spring mvc学习笔记
spring MVC笔记spring MVC笔记spring MVC笔记spring MVC笔记
Spring+MVC笔记.pdf
spring mvc 基础笔记 源代码. 下载后倒入到eclipse当中。 请重新倒入Tomcat安装目录lib文件夹下的servlet-api.jar. 如果是jQuery.js文件有红色叉表示错误的话请无视。
传智播客 Spring MVC 学习笔记
spring mvc学习笔记,包括学习遇到的问题和解决方法。
spring mvc的学习笔记,主要讲解了基于xml的配置,和如何增加spring mvc拦截器,如何返回json报文
Spring MVC 知识点总结,很全,包括概念、框架、框架具体流程、应用、组件、环境搭建、开发步骤、注解、数据校验等。
SpringMVC 的入门、请求参数的绑定、 常用注解
自己学习spring课程的笔记。笔记都是根据尚硅谷的课程(spring ioc,spring aop,spring mvc,spring boot等)写的。 主要内容:spring ioc,spring aop,spring mvc,spring boot
《Spring MVC 复习笔记》博客附件。 博客地址:https://blog.csdn.net/Supreme_Sir/article/details/109349332
将应用程序分为 Controller、Model、View 三层,Controller 接收客户端请求,调用 ...Spring MVC 就是对这套流程的封装,屏蔽了很多底层代码,开放出接口,让开发者可以更加轻松、便捷地完成基于 MVC 模式的 Web 开发。
Spring MVC 3学习笔记+教程 这是一个学习spring mvc设计模式很好的参考文档,希望大家可以从中学到东西
sample code 博文链接:https://starscream.iteye.com/blog/1057305
学习mybatis、spring、mvc、springboot的笔记
这是个人的Spring MVC的MD版学习笔记+源码文件,具体参考:https://blog.csdn.net/m0_46153949/article/details/114260215