Struts2.0框架在使用时需要注意的问题

首先声明一遍MVC的编程思想:     

  VIEW中的参数传递到Controller

  数据类型转换+数据验证

  Controller调用下层的对象的方法处理业务

  数据类型转换+数据验证

  处理完成,返回数据,跳转到目标页面,并在页面中展示数据

 

    1.controller的三种控制方式:

             a.自定义控制器

             b.实现Action接口的控制器

             c.继承ActionSupport类的控制器

 

                                 一般是选用第三种方式,因为可以使用ActionSupport提供的大量的辅助性功能,第二种也可以用,只不过辅助的功能较少,但是由于java的单继承机制,第三种的可拓展性不强,而实现接口的还可以实现多个接口,有利于大型项目的拓展,而第一种方式则不予以推荐!

 

 

    2.前台数据传递到后台所用的三种方式:(大多数情况下,页面上的数据和数据库中的数据是一一对应的,但是也存在对应不上的情况,比如在修改密码时的确认密码,此时就需要一个实体类,来存放页面中特有的一些数据,eg:com.hchx.vo)

 

              

属性接受

  前台表单中定义了不同的数据【有name属性的】

  前台发送请求到服务器时

  拦截器拦截到请求

  拦截器自动获取到表单中的有name属性的表单元素

  取出name属性的值,自动生成【set属性】字符串方法

 

  username-àsetUsername(String username);

  从配置文件中获取到目标的Action对象的字符串

  反射出Action对象,反射执行Action对象的set方法给属性赋值

  后台Action中的属性,接收到前台页面传递过来的数据

  域模型接受参数【店主推荐】

  POpersist object)对象——实体类——通常跟数据库字段一一对应的

  PO对象用来保存对象到数据库

  从数据库中读出数据记录,然后封装成PO对象

  com.hchx.model->实体类

  VO(value object)对象——实体类——通常跟网页上的数据一一对应

  VO对象主要用来保存从页面上获取的数据

  VO对象主要用来在页面上展示数据

  PO对象和VO对象大部分情况下是一样的

  如果PO对象和VO对象的字段不一致,在vo包中重新定义值对象

  如果PO对象和VO对象的字段一致,直接使用PO对象

  接受过程中需要注意的地方

  页面参数的name属性值,使用[userVO.username]方式来定义

  模型驱动接受参数【偶尔使用】

  首先创建了一个VO模型对象

  页面上提交表单到服务器【包含数据】

  查看对应的Action是否实现了ModelDriven接口

  目标Action已经实现了ModelDriven接口

  1. 调用getModel()方法获取对象

  给对象中的第一个属性赋值

  2. 调用getModel()方法获取对象

  给对象中的第二个属性赋值

  ……

 

 

你可能感兴趣的:(Struts2.0框架在使用时需要注意的问题)