几种控制器介绍

来源:互联网 发布:网络教育课程 编辑:程序博客网 时间:2024/06/13 04:51

       这里一共跟大家介绍四种控制器:AbstractController、CommandContorller(命令控制器)、FormController(表单控制器)、WizardFormController(向导表单控制器)。

        一、AbstractController

        这是最基本的控制器,之前有提到过,直接继承AbstractController这个类,需要重写它的handleRequestInternal方法。

        二、CommandContorller(命令控制器)

        用的时候,是去继承AbstractCommandController类,重写这个类的handle方法 

        

      (这个父类上划横线没关系的,只是不建议使用,因为springMVC现在都建议使用注解了,没关系,不建议使用还是可以用的~)

        参数列表中的Object参数是用来接收表单数据的,并将接收的数据封装成一个实体类对象。

        如何接收数据并封装成对象呢,在这之前我们可以随便先建一个实体类Person,然后在我们刚写的控制器类中写一个注册命令类:

        

       这样,请求中附带的参数就会被封装成Person类的对象。

       三、FormController(表单控制器):

       涉及到表单提交的时候,我们会用到表单控制器。

       需要继承SimpleFormContorller,并重写这个类的doSubmitAction方法(虽然继承了之后不是强制的需要重写这个方法,但是我们依然要进行重写)。

       其次,我们依然需要一个注册命令类,因为表单提交,我们需要拿到传过来的数据。

       代码参考如下:

        

       我们看到这个方法没有返回ModelAndView对象,那返回哪个页面呢?我们需要在配置文件中进行配置,配置如下:

        

       视图解析器的配置就不再介绍了,想了解的同学请看之前的帖子《第一个SpringMVC例子》。

       相当于我们访问myform.action的时候,控制器识别是get方式,会跳转至personForm.jsp页面,填写表单,点击提交后,会调用我们写的表单控制器,同样,控制器识别是post方式提交,提交成功会转发至success.jsp页面。

        (get是从服务器上获取数据,post是向服务器传送数据。可以先这样简单粗暴地理解一下)

       四、WizardFormController(向导表单控制器)

       什么情况下会用到这种控制器呢?我们在注册某个网站的时候,需要填写的信息很多,有时候需要写完一页,要继续填写下一页的信息,直到注册成功。还有网购的时候,经常也需要填写好几页的信息,一直下一步下一步直到完成支付。当然,类似的情况还有很多,这种情况下,我们需要用到向导控制器。

       需要继承AbstractWizardFormController类,重写这个类的processFinish方法。

       我们先写好控制器:

       

       解释一下:我们需要从请求中拿数据,所以注册命令类必须要写上(大哭不然会报500错误)。

       最终完成后返回success.jsp。

       接下来我们以注册为例,完成控制器的配置:

       

        配置中的1、2、3就是未来要展现给用户的注册时填写信息的页面,注意是有顺序的。好,我们创建好这三个页面:

        1.jsp:

        

        2.jsp:

        

        这个代码有点问题,大家把“下一步”的“_target1”改为“_target2”

        3.jsp

        

        注意:_target指的是要跳转到第几个页面,从0开始是第一个页面。

        完成上面的工作,就可以部署到tomcat中试一试了~~~得意

        

       

       

       

       

       

        


        

        

       

        


         

       

         

        

0 0
原创粉丝点击