00:00
下面呢,我们来研究一下处理模型数据。我们知道MVC设计模式是我发一个请求到目标处理器,目标处理器去掉业务方法,业务方法可能会有返回值,对吧?比方说一个对象或者是一个集合,然后我们转发到页面,转发页面的时候呢,我需要把业务对象,那个返回值,那个对象或者是集合在页面上显示出来。所以说就有一个问题,我们如何把模型数据放在预对象里边,这个预对象通常情况下指的是请求域,对吧?看一下在spring VC里边呢,一共是有四种方法。Model view作为返回值,Map和model作为参数或者是返回值。啊,30的tribu注解,我们可以把。返回值,或者是把某一个这个我们需要的值放在session里面,还有一个model attribute,这个呢比较特殊,有点类似于stra to那个pre拦截器。
01:08
One by one先来说modern view,首先说呢,Modern view可以作为目标方法的返回值,这里面既包含视图信息,也包含模型数据,OK,看一下。往这儿看吧。Public view是吧?Model and view model and Bill。Model and view等于new model。Model and view看有一个视图的名字是不是view name,我们这个view name就等于这个success。
02:03
Return末端。然后我们看添加模型数据到model and view中,Model and view.add object有键值,对键呢,我来写个time吧,New date control shift o。好,这个搞定啊,实际上可以返回一个集合,道理是不是一样的呀,对吧。Request mapping。Cast报没?写一个超链接。Test model and view,然后呢,在目标页面,我们需要把这个呃,Time给显示出来。
03:20
好久没有编辑这个页面了是吧?Request scope的,找一个看看效果。刷新。注意看诶目标页面呢,可以打出这个时间没问题的。这就是model and view说可以。返回值目标方法目标方法的返回值可以是model and view类型。其中可以包括。
04:07
包含吧视图和视图。和模型信息好的,那么。通过刚才这个例子呢,我们已经可以肯定,哦,我放的这个键值,对啊,真的就放到了那个。请求域里边是吧,那实际上源代码是什么样的呢?看一眼。停掉。Debug。刷新走起好往回翻。下一步我们看返回值呢,实际上就是一个什么呀,MV Mo and view,我点一下吧。哎,无论你返回的是一个string形。还是一个map型,还是一个其他类型,Spring mvc都会给它转为一个mode view看到了吧,MV好了往下翻,哎,我们看到这块呢,有这个,呃,处理结果这样的一个方法点进来。
05:11
处理异常,我们不看看渲染视图,点进来得到视图对象,这个我们在这个下一个章节讲视图跟视图解析的时候,会说看渲染视图在这呢,在这呢,再点一下ctrl key,第一个抽象的。我后来我们看用什么方法呀,叫什么呃。把这个结果呢进行输出点一下。Control key,我们现在用这个视图啊,实际上是一个internal resource view。看,把这个模型暴露到这个请求属性里面,点进来你会看到我们实际上是对我们这个map里边这个数据进行了便利,然后呢,把这个值一个一个的放到请求域里边,有看到吧,诶,这是那个源代码。
06:11
那这块的话呢,这个模型是什么呀。往前翻,你看model。再往前翻。再往前翻,Model是谁?Model实际上就是那个。Map,呃,Model,那个model带回来我们看一眼。MV你看吗?MV的get model internal这个呢,就是model and view里边那个model,我点一下它注意看哈,返回来一个model,我们再来看我们。苏州MVC这个测试方法。Case as的时候看是不是往get往model里边是吧,往model里边放的这个值,那最后的话呢,我们把这个model兜里边这个属性一个一个的放到了请求域里面是吧?这个就是其内部原理。
07:11
OK,我也来写一下。Vay会把model and view的。Model中的数据放到request域对象。喻对象。中好吧,呃,刚才看源码那个过程呢,你了解一下就可以了,我们在后边还会详细的来讲spring mvc运行流程,那个时候的话呢,我们再分析,你感兴趣的话,可以把我刚才那个过程重复一下,如果你觉得吃力的话,OK,把这个结论记住,会用就可以。
08:09
当你用到一定程度的话,你再回来看这个感觉就会不一样,对吧。
我来说两句