一,属性驱动的数据封装
示例代码:
{// 属性直接放在action类中,并且每一个属性都得写get和set方法private String name;private String passwd;String execute() {System.out.println(name);System.out.println(passwd);return SUCCESS;}public String getName() {return name;}(String name) {this.name = name;}public String getPasswd() {return passwd;}(String passwd) {this.passwd = passwd;}}
要使用上面的action我们可以使用下面的form表单来提交:
====”submit”>提交</button></form>
我们发现这种方法在属性较少的情况下可取,如果属性很多,代码会很乱,所以有了下面的模型驱动
二,模型驱动(1),不使用struts2标签的模型驱动<User u = new User();User getModel() {return u;}String execute() throws Exception {System.out.println(u.getName());System.out.println(u.getPasswd());return “success”;}}
使用这种action的form表单和属性驱动的一模一样
(2)使用struts2标签的模型驱动
示例代码:
{User user;public String execute() {try {System.out.println(user.getName());System.out.println(user.getPasswd());} catch (NullPointerException e) {return ERROR;}return SUCCESS;}public User getUser() {return user;}(User user) {this.user = user;}}
为什么说是标签驱动的呢?看下面的form表单:
====”submit”>提交</button></form>
还可以使用struts2的标签:
====>
这就是struts2的3种数据封装机制,核心的机制是java反射,这个是如何实现的,将在以后的博文中讨论
,累死累活不说,走马观花反而少了真实体验,