当你从jsp界面调到action时,
模型驱动会将jsp界面上的表单属性自动封装成一个对象(需要在aciton定义这个对象的set,get方法),要这个对象干什么呢?因为大多数你的service方法参数大多时候是一个对象,那么你拿到这个对象直接作为参数,通过service访问dao层方法(例如增删改查);
属性驱动需要你在action中定义属性,这些属性就是jsp表单属性,当你从jsp界面跳到action,struts的拦截器就会调用你的action的setxx方法,将你表单的属性注入action中对应的属性,好了,那么问题来了,假设你的表单有10000个属性,那么你就需要在action中定义10000个属性。。。。。然后你的service方法需要传入一个对象,那么你需要将这10000个属性封装成一个对象,然后传给service方法。。。。。模型驱动只需要定义一个对象就可以。
所以模型驱动的优点:action类中会比较简洁,利于传参;缺点:在jsp界面定义表单属性name时需要xxx.id这种格式定义表单nama属性。
属性驱动的优点:当你要的参数不多,而且这些参数不是不需要封装成一个类,用属性驱动会比较好
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。