日期:2014-05-19  浏览次数:20632 次

Struts2实现MVP模式!!!
有没有例子,或者讲一下Struts2实现MVP的例子!或者讲一下View是怎么和Model绑定的?谢谢
------解决方案--------------------
也没什么就是实现ModelDriven接口就行了传入你的泛型T就是你这action要绑定的类型例如

class User{
 private String username;
 private String password;
 set get方法;
}
public Action extends AtionSupport implements ModelDriven<User>{
   private User user;
   set get方法;
}

页面在获取或赋值的时候就无需像属性驱动那样使用user.username user.password了
直接username password就能映射到user属性中
------解决方案--------------------
首先mvc没有struts2,至少我没用过
struts是在SSH模式中用到的 struts2 spring hibernate
这个怎么说呢说说mvc和ssh吧 简单一点
mvc m 模型,v 视图,c控制台
m (业务逻辑层,数据访问层)
v 视图 jsp 
c servlet 控制器
jsp首先提交到servlet里 比如:location.href="xxx 提交方式post或者get get提交中文有乱码需要些个处理乱码的类,post设置编码格式一半不需要,也有一些奇葩的人回遇到乱码 
有接口的方式
创建对象 接口指向实现类
比如接口是 config而显现接口config的类是configMpi 那就
config con=new configMpi();
就可以方位实现接口的类configMpi中的方法了 那configMpi中方法写什么呢
调用业务逻辑层的方法
业务逻辑层比如是 login 那在实现类中创建login对象 login lo=new login();
比如你在实现类中有个getLoginId()这个方法返回值是Boolean
你已经在实现类中创建了login对象 所以可以直接在getLoginId直接调用lo里的方法
public Boolean getLoginId(){
return Io.xxx(xxx是login里的方法 实现类中方法的返回值要和调用login的方法返回值一样 不然报错)
}
然后login业务逻辑层调用数据访问层 就是对数据库操作的类 insert update select delete什么的
然后一段坎坷的路把结构带到servlet中 
servlet根据返回的值进行页面的跳转
有点啰嗦了 说简单点吧

servlet中直接写对数据库操作的方法 比如在servlet中写个getLoginAll方法 就是查询 然后返回一个对象或者集合,servlet处理对象也就是保存对象 然后在jsp遍历对象








------解决方案--------------------
引用:
实现ModelDriven接口就行了吗?能解释下原理吗?MVC中,View是怎么和Model绑定的,求大神

想知道这个绑定关系,可以研究下OGNL表达式引擎
------解决方案--------------------
mvc是设计模式(m:model,v:view,c:control),struts只能扮演控制器、业务逻辑处理的角色,即mvc中的c!

所以不是说struts实现了mvc,而是struts是mvc的一部分。这样讲不难理解吧?

至于model绑定view:当然要通过c(即struts),sturts对model进行计算、处理,完毕后交给view显示给用户。这就是mvc设计模式的分工。