模型驱动

模型驱动

此种封装方式必须按照要求编写代码,要求如下:
1. 动作类必须实现ModelDriven 接口
2. 动作类中需要定义一个模型,并且必须实例化
3. 动作类提供ModelDriven 接口中抽象方法的实现,返回模型对象。
4. 在实体类中提供与表单name属性取值一致的全局私有变量,并且提供set和get的方法

注意
1. 使用模型驱动时,get/set方法不是必须的
2. 表单值封装找的是属性的get和set方法,把get和set去掉,首字母小写

动作类:

/** 
 * 封装请求参数的第三种情况: 
 *  模型驱动 
 *  
 * 使用要求: 
 *  1.动作类必须实现 ModelDriven 接口,其中泛型提供的是模型对象 
 *   2.在动作类中需要定义一个模型对象,并且必须由我们自己来实例化 
 *   3.提供接口中抽象方法的实现,方法的返回值是我们定义的模型对象 
 *  模型驱动没有要求生成 get/set 方法 
 * @author Johnny.Chen 
 *  
 * 实际开发中三种方式都有应用场景。 
 * 在我们现阶段的学习中,以模型驱动作为重点。 
 */ 
public class Demo3Action extends ActionSupport implements ModelDriven<User> { 
  private User user = new User(); 

  @Override 
  public User getModel() { 
    return user; 
  } 
  public String demo3(){ 
    System.out.println(user); 
    return SUCCESS; 
  } 
} 

jsp页面:

<%--表单 3:模型驱动 --%> 
<form action="${pageContext.request.contextPath}/demo3.action" method="post"> 
  用户名:<input type="text" name="name"/><br/> 
  年龄:<input type="text" name="age"/><br/> 
  <input type="submit" value="提交"/> 
</form>

struts.xml

<action name="demo3" class="cn.action.Demo3Action" method="demo3"> 
  <result name="success">/success.jsp</result> 
</action> 

到这我们已经能够将数据封装到一个Java对象中了,大部分我们会优先使用模型驱动的方式,因为
Struts2 内部有很多结果是围绕模型驱动设计的

但如果页面向多个对象中封装,那么就需要使用属
性驱动的方式二了。

这些都是像某个对象中封装数据,那么如果 Action 中需要一个对象的集合呢?
又应该如何进行数据的封装呢?那么接下来我们来了解一下 Struts2中复杂类型数据的封装。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值