struts2浏览器前台向服务器后台传值的两种方式。

来源:互联网 发布:小米推送php demo 编辑:程序博客网 时间:2024/05/18 00:08

  这里不是说post和get方法,而是指struts2前后台交互的、jsp页面传递数据,后台action接收数据的方式。

–常用的方式有两种,一种用于简单少量的数据。一种用于相对大量的数据。还有一种方式我还没有在实际项目中使用到。

  1. 在Action类中定义表单属性,两者属性名称必须一致。
  2. 表单传递过来的参数封装成一个类,然后调用其中的属性.

  对于第一种方法 1. 在Action类中定义表单属性,两者属性名称必须一致。要求在action类里为这些属性写上相同的getter和setter方法。

.jsp代码:<form action="login" method="post" name="form1">    用户名:<input type="text" name="student.username"/><br/>   密 码:<input type="password" name="student.password"/><br/>   <input type="input" value="提交"/></form>--------------axtion代码:public class loginAction extends ActionSupport{{private String username;private String password;/**提供setter和getter方法**/    public void login(...){        //直接可以打印前台穿来到值。这是反射和注入实现的。        syso..(username);           }}

这种方式的1.要点是(提供前后台一致的属性名,并在action类里写好相应的getter和setter方式)2.优点是简单粗暴,不用过多的工作,不用获取request对象去getparameter来获取。3.缺点是,当前台传递的数据量过多的时候,我们的action类,就充斥了各种setergetter方法。比如当用户输入的数据详细个人信息(个人资料,毕业学校,爱好等),那么这种方式用起来就不那么方便。所以我们开始采用第二种方法来做。在前台传对象。
  第二种方式和第一种方式在本质上是类似的。1)前台标签的name属性为(对象名.属性名)。2)后台action中提供对象的引用,并写出对象个getter和setter方法。对象对应的类是pojo类(提供各个字段的getter和setter方法。)
方式二 .jsp代码:

<form action="login" method="post" name="form1">    用户名:<input type="text" name="student.username"/><br/>   密 码:<input type="password" name="student.password"/><br/>   <input type="input" value="提交"/></form>

方式二 java的pojo类:

public class student{private string username;private string sex;private int age;private string school;private string grade;//接下来是各个属性的getter和setter方法.....getUsername(){...};}

方式二 axtion代码:

public class loginAction extends ActionSupport{{    private Student student;/**提供setter和getter方法**/    public Student getUsers(){        return student;    }    public void setUsers(Student student){        this.student=student;    }    public void login(...){        //直接可以打印前台穿来到值。这是反射和注入实现的。        syso..(student.username);           }}

第二种方法是最常用的方法。要点是(1前台设值和后台取值都是通过student.username来实现。2提供pojo类。3action中写出对象的setter和getter方法。)

一种我在实际项目开发中还没有用过的传值方式:
三.action实现ModelDriven接口来接收表单数据

首先Action类必须实现ModelDriven接口,同样把表单传来的数据封装起来,Action类中必须实例化该对象,并且要重写getModel()方法

public class loginAction extends ActionSupport implements ModelDriven<Users>{private Users users =new Users();public Users getModel(){return users;}/*表单传来的参数封装在users对象中表单属性名不需要加上引用users对象,直接传参数名*/}

小结:相对于传统的servlet和jsp传值,我们要做的是把属性的名称设定一致就行了。不再需要我们通过request.getParameter(stuent.username);的方式去获取。struts2框架已经帮我们做好了,它底层采用反射机制帮我们设定好了的。直接使用就可以。

//下一步写springmvc的传值和传统传值方式总结

0 0
原创粉丝点击