spring MVC原生代码配置
1.web.xml配置入口地址
在url-pattern里。规定了所有的*.acion都会被拦截。拦截后到配置文件进行相应的规则
2.控制器类
1.配置控制器
控制器类是定义了页面转发规则。在配置控制器中。spring mvc 框架要求其必须重写handleRequestInternal方法。
** 这里的ModelAndView 是指要渲染的页面。比如这里返回了home。在经过配置文件的视图解析器时,即代表我想要返回 前缀+home+后缀的 这个页面
2.命令控制器
用来将url的参数转成javaBean
3.表单控制器
表单控制器不返回ModelAndView 。判断具体返回的ModelAndView 是在控制器里的value指定的
4.向导表单控制器
使用场景:用户注册
3.配置文件信息:
3.1视图解析器
解析 在controller里返回的ModelAndView ,本例中返回home. 所以最后解析结果为:前缀+home+后缀------- /WEB-INF/jsps/home.jsp
3.2三种处理器映射:
1.bean名url处理器映射(默认,可不写,推荐)
**order 代表这个映射的优先级
使用此映射关系时。会使用配置控制器中的name属性。来得到要映射的地址
2.简单url处理器映射(要配置信息多,不推荐)
3.控制器类名处理器映射(可能存在不同报同名controller,不推荐)
3.3控制器:
1.配置控制器
2.命令控制器
3.表单控制器
formView和successView是框架枚举的。value是页面的逻辑名
表单所在页面(formView-get请求)是persionForm.jsp
提交成功页面(post请求)是success.jsp
4.向导表单控制器
这里要注意表单控制器的页面跳转是根据按钮的name属性决定的
这里的_target0表明要跳转到/wizard/1 index从0开始 与顺序有关
_target0 表示 /wizard/1
_target1 表示 /wizard/2
_target2 表示 /wizard/3
_cancel 会调用控制器类中的processCancel方法
_finish 会调用控制器类中的processFinish方法
总结:
1.在web.xml 中。表明要拦截的地址是*.action, 所以 home.action被拦截到了
2.处理器映射是用BeanNameUrlHandlerMapping,所以用控制器的name。与之匹配
3.找到匹配项
4.跳到对应的控制类cn.itcast.springmvc.controller.HomeController 里。
5.控制器类返回的ModelAndView 为home。
6.视图解析器进行封装解析,得到页面地址,要重新刷新的页面是 /WEB-INF/jsps/home.jsp