一.属性封装
1.创建User实体类`

package cn.entity;public class User {private String username;private String password;@Overridepublic String toString() {return "User{" +"username='" + username + '\'' +", password='" + password + '\'' +'}';}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}
}

2.创建DataDemo2Action类将数据封装到实体类

     User user=new User();user.setUsername(username);user.setPassword(password);System.out.println(user);

或者通过以下方式

package cn.data;import cn.entity.User;
import com.opensymphony.xwork2.ActionSupport;/*** 使用属性封装表单数据* @author zhangshuaihao*/
public class DateDemo1Action extends ActionSupport {//1.定义变量//2.变量的名称要和输入项name相同private String username;private String password;public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}//2.生成get和set方法@Overridepublic String execute() throws Exception {System.out.println("username="+username);System.out.println("password="+password);return NONE;}
}

通过structs2内部机制,先获取表单中的name属性值,然后与该类中的属性(username/password)进行匹配,如果匹配成功,则会调用set方法,将其封装到实体类对象中

二、模型驱动
1.创建User实体类

package cn.entity;public class User {private String username;private String password;@Overridepublic String toString() {return "User{" +"username='" + username + '\'' +", password='" + password + '\'' +'}';}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}
}
import cn.entity.User;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;/*** 使用属模型驱动获取表单数据* 模型驱动能够直接把表单数据封装到实体类对象中去* @author zhangshuaihao*/
public class DateDemo2Action extends ActionSupport implements ModelDriven<User> {//创建对象//创建要求,要求表单输入项中的name属性值和实体类属性名称一致private User user=new User();@Overridepublic String execute() throws Exception {System.out.println(user);return NONE;}@Overridepublic User getModel() {//返回创建的对象return user;}
}

该模型驱动要实现ModelDriven接口,并且实现其中的getModel()方法,可以直接将属性封装到实体类中
三、表达式封装

在这里插入代码片<form action="${pageContext.request.contextPath}/data3.action" method="post">username:<input name="user.username" type="text" id="username"><br>password:<input name="user.password" type="password" id="password"><br><input type="submit" name="Submit" value="提交"></form>
import cn.entity.User;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;/*** 使用表达式封装数据** @author zhangshuaihao*/
public class DateDemo3Action extends ActionSupport {//1.声明实体类private User user;public User getUser() {return user;}public void setUser(User user) {this.user = user;}@Overridepublic String execute() throws Exception {System.out.println(user);return NONE;}
}

注意input标签中的name属性,使用了user.username的形式,该表达式的执行过程为:首先通过getUser方法获取User对象,然后调用User类中的setUsername方法,将属性封装到实体类User中

注意:属性封装和模型驱动封装不能同时使用,如果同时使用,属性封装中的数据为null,只会调用模型驱动封装,一般来说三种封装方式经常使用模型驱动封装

Struts2封装获取表单数据方式相关推荐

  1. Action 中获取表单数据的三种方式

    (尊重劳动成果,转载请注明出处:http://blog.csdn.net/qq_25827845/article/details/53138905  冷血之心的博客) Action 中获取表单提交数据 ...

  2. PHP获取表单数据的方法有几种,php怎么获取表单数据

    php获取表单数据的几种方法: 一.用file_get_contents以get方式获取内容,需要输入内容为:<?php $url='http://www.domain.com/?para=12 ...

  3. php yii2自动给值,Yii2基于Ajax自动获取表单数据的方法

    本文实例讲述了Yii2基于Ajax自动获取表单数据的方法.分享给大家供大家参考,具体如下: 这里有两张表,表结构如下,locations表存放的省份和邮编等信息,两张表的model和curd均使用gi ...

  4. ajax获取表单php,Yii2基于Ajax自动获取表单数据的方法

    本文实例讲述了Yii2基于Ajax自动获取表单数据的方法.分享给大家供大家参考,具体如下: 这里有两张表,表结构如下,locations表存放的省份和邮编等信息,两张表的model和curd均使用gi ...

  5. Struct2中三种获取表单数据的方式

    1.使用ActionContext类 //1获取ActionContext对象ActionContext context = ActionContext.getContext();//2.调用方法获取 ...

  6. PHP获取表单数据的方法有几种,如何实现PHP获取表单数据与HTML嵌入PHP脚本

    如何实现PHP获取表单数据与HTML嵌入PHP脚本 导语:如何实现PHP获取表单数据与HTML嵌入PHP脚本,下面是小编给大家提供的操作讲解,大家可以参考阅读,更多详情请关注应届毕业生考试网. 常用的 ...

  7. python获取表单数据的代码_使用flask和python从html表单获取表单数据

    我正在尝试在按下submit时从文本字段中获取表单数据,以便将其放入json格式并作为另一个页面访问json数据,该页面将是localhost:5000/info.每次我试图用request.form ...

  8. Request获取表单数据的四种方法详解

    表单代码 <!DOCTYPE html> <html lang="en" xmlns="http://www.w3.org/1999/html" ...

  9. struts2 Action获取表单数据

    1.通过属性驱动式 1.首先设置 表单中的数据的name值 如:<input type="text" name="username" value=&quo ...

最新文章

  1. 理解和实现分布式TensorFlow集群完整教程
  2. 解决.net webservice的WebClient或HttpWebRequest首次连接缓慢问题
  3. 智能车竞赛第十六届比赛参赛同学提问-环境参数-5月15
  4. R | 对亚马逊新总部可能位置进行可视化
  5. jni string 转换
  6. ar linux 删除模块_Linux基础命令---ar
  7. cf手游服务器维护19年9月19,神雕侠侣2手游9月19日停服维护公告_神雕侠侣2手游9月19日更新了什么_玩游戏网...
  8. Little Sub and Game
  9. Java程序安装失败
  10. 机器人运维时代已来临?这是真的......
  11. keycloak集群化的思考
  12. python package 的两种组织方式
  13. 开源流媒体云视频平台EasyDarwin中EasyCMS服务是如何进行命令转发和消息路由的
  14. 30 秒裁剪的很大一部分作用是观察什么对别人是重要的
  15. Go Module 工程化实践(二):go get 取包原理篇
  16. 学习matlab(十七)——信号处理
  17. Layabox 2 使用其它编辑器开发layabox2d
  18. 《可复制的领导力》学习总结
  19. WIN下静默安装MSI文件
  20. 我的大学,被初恋女友甩了!

热门文章

  1. img title属性值利用#13换行
  2. 谈点技术吧,6万人在线每秒实时更新的解决方案
  3. android phpmyadmin,从android studio向phpmyadmin添加数据时出现问题
  4. bugzilla perl mysql apache windows,windows下apache安装bugzilla
  5. rz安装 xshell_利用XShell上传、下载文件(使用sz与rz命令)
  6. 戴尔服务器装新硬盘模式,DELL服务器配置RAID及安装ESXI
  7. replace into mysql去重_上传 phpexcel 类 入库并入库前去重
  8. python3.6进度条_Python实现下载界面(带进度条,断点续传,多线程多任务下载等)...
  9. c语言编程算法模板,C语言编程算法精选.doc
  10. 【机器学习算法专题(蓄力计划)】八、机器学习中数据的方差分析