struts2浏览器前台向服务器后台传值的两种方式。
来源:互联网 发布:小米推送php demo 编辑:程序博客网 时间:2024/05/18 00:08
这里不是说post和get方法,而是指struts2前后台交互的、jsp页面传递数据,后台action接收数据的方式。
–常用的方式有两种,一种用于简单少量的数据。一种用于相对大量的数据。还有一种方式我还没有在实际项目中使用到。
- 在Action类中定义表单属性,两者属性名称必须一致。
- 表单传递过来的参数封装成一个类,然后调用其中的属性.
对于第一种方法 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的传值和传统传值方式总结
- struts2浏览器前台向服务器后台传值的两种方式。
- struts2向浏览器响应json数据的两种方式
- springMVC注解前台像后台传值的两种方式
- 总结下struts2前台传递值到后台的方式
- Struts2:jsp前台传值到action后台的三种方式
- springmvc前台给后台传值的几种方式
- springmvc前台给后台传值的几种方式
- springmvc前台给后台传值的几种方式
- springmvc前台给后台传值的几种方式
- Struts2中访问web元素的四种方式及前台jsp页面获取后台值的方式
- Struts2中访问web元素的四种方式及前台jsp页面获取后台值的方式
- Struts2中访问web元素的四种方式及前台jsp页面获取后台值的方式
- Struts2中访问web元素的四种方式及前台jsp页面获取后台值的方式
- Struts2后台校验两种方式
- android实现应用程序前台和后台之间转换的监听的两种方式
- Struts2中jsp前台传值到action后台的三种方式以及valueStack的使用
- springmvc常用注、上传文件以及后台返回前台数据的两种方式
- Struts2中jsp前台传值到action后台的三种方式
- 关于语义化的js的总结,DOM、element、text等节点的操作
- 我的第一个Python小程序爬出网站图片
- java8 Stream类
- JavaScript如何一次性展示几万条数据
- ios上线最新详细流程
- struts2浏览器前台向服务器后台传值的两种方式。
- JavaWeb问题归集
- 给程序员的忠告(转)
- prop()与attr()详解
- iPhone更新10.3之后不更新Xcode真机调试解决方法
- hadoop参考资料总结
- AbstractQueuedSynchronizer
- Android studio DELETE_FAILED_INTERNAL_ERROR Error while Installing APKs
- vim多行注释