博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
struts2模型驱动和属性驱动
阅读量:4306 次
发布时间:2019-06-06

本文共 1873 字,大约阅读时间需要 6 分钟。

struts1中,我们可以将提交表单的参数用FormBean进行封装,传递给我们的Action,在struts2中我们可以使用Model-Driven和Property-Driven进行表单数据的封装,便于我们在Action中直接使用。

1、Property-Driven(属性驱动):是指在jsp页面中的form表单域值与Action中属性名一致,当form被提交到action时,struts2会自动根据表单中的属性调用action中的set方法进行赋值。   

eg:  

表单:

 

1 
2 userName:
3 password:
4
5

 

 

Action:

1 public class userAction extends ActionSupport{ 2    private String userName; 3    private String password; 4   5    public String execute()throws Exception{ 6      System.out.println(getUserName()); 7      return this.SUCCESS; 8    } 9  10    public String getUserName(){11     return userName;12    }13  14    public String getPassword(){15     return password;16    }17  18    public void setUserName(String userName){19     this.userName = userName;20    }21  22    public void setPassword(String password){23     this.password = password;24    }25 }

 

2、Model-Driven(模型驱动):struts2中的模型驱动类似struts1中的ActionForm,在struts1中,每个 Action都必须与一个ActionForm相对应,而在Struts2中,每一个action则是都对应一个实体bean,这个bean里面则是封装 了表单所有属性。

eg:

表单:

 

1 
2 userName:
3 password:
4
5

 

Action:

1 public class userAction extends ActionSupport implements ModelDriven{ 2     private User user = new User(); 3   4     public String execute()throws Exception{ 5      System.out.println(user.getUserName()); 6      return this.SUCCESS; 7     } 8      9     @override10     public User getModel(){11      return user;12     }13  14     public User getUser(){15      return user;16     }17  18     public void setUser(User user){19      this.user = user20     }21 }

bean:

 

public class user{    private int id;    private String userName;    private String password;    //以下省略get和set方法}

 

 

3、属性驱动和模型驱动的选取:

属性驱动方便简洁,表单域较少时可用;

表单域较多且定义了相应的bean,可以使用模型驱动

 

转自:

 

 

 

 

 

 

  

转载于:https://www.cnblogs.com/soloflower/archive/2013/04/10/3012298.html

你可能感兴趣的文章
对于模拟交易所引发的思考
查看>>
高频交易的几种策略
查看>>
量化策略回测TRIXKDJ
查看>>
量化策略回测唐安奇通道
查看>>
CTA策略如何过滤部分震荡行情?
查看>>
量化策略回测DualThrust
查看>>
量化策略回测BoolC
查看>>
量化策略回测DCCV2
查看>>
mongodb查询优化
查看>>
五步git操作搞定Github中fork的项目与原作者同步
查看>>
git 删除远程分支
查看>>
删远端分支报错remote refs do not exist或git: refusing to delete the current branch解决方法
查看>>
python multiprocessing遇到Can’t pickle instancemethod问题
查看>>
APP真机测试及发布
查看>>
通知机制 (Notifications)
查看>>
10 Things You Need To Know About Cocoa Auto Layout
查看>>
一个异步网络请求的坑:关于NSURLConnection和NSRunLoopCommonModes
查看>>
iOS 如何放大按钮点击热区
查看>>
ios设备唯一标识获取策略
查看>>
获取推送通知的DeviceToken
查看>>