Struts2笔记

2017-03-22  本文已影响22人  f109fa900a5e

Struts2笔记——Struts2的模型驱动(ModelDriven)

1.  模型驱动:         

模型驱动是使用javaBean对象来封装请求参数,在整个MVC流程中可以直接使用这个对象。在发送请求后Struts将各个请求参数(javab的属性)封装到一个JavaBean对象中,Action接收这个实例对象并用该对象进行相关处理返回处理结果。          模型驱动的Action中定义javaBean并实例化,并且需要提供该JavaBean的getter和setter方法。Action需要实现ModelDriven接口。

2.  Struts2模型驱动实现方式:     

  那么Struts2是如何将请求参数封装到model中的呢?我们可以解读一下struts-default.xml配置文件,在struts-default.xml中有如下配置:

    其中params拦截器负责提取请求的参数,如果是使用的属性驱动模式,它还负责将请求参数传给Action实例的属性;而model-driven拦截器则负责把请求参数传给模型的属性。

3. 下面给出一个使用模型驱动的示例程序:

JavaBean类:

`

public class TestBean {   

   private int id;   

  private String name;   

  public TestBean(){    };   

  public int getId() {

         return id;

      }   

  public void setId(int id) {

          this.id = id;

      }   

  public String getName() {

         return name;

      }   

  public void setName(String name) {

          this.name = name;

      }

  }

Action:

import com.core.bean.TestBean;

import com.opensymphony.xwork2.ActionSupport;import com.opensymphony.xwork2.ModelDriven; public class TestAction extends ActionSupport implements ModelDriven{

private TestBean testBean=new TestBean();

public TestBean getTestBean() {

  return testBean;

}

public void setTestBean(TestBean testBean) {

  this.testBean = testBean;

}

@Override

public String execute() throws Exception {

  return this.INPUT;

}

public TestBean getModel() {

  return testBean;

}

}

`

采用模型驱动模式后,所有的处理结果都封装在Model中,如果想要在JSP页面上输出属性结果,可以使用<s:property value="testBean.name"/>或<s:property value="name"/>输出结果。

上一篇 下一篇

猜你喜欢

热点阅读