struts2封装客户端数据到Action
1.在Action中定义简单数据类型的属性
给Action定义简单类型的属性,封装客户端请求的数据
简单类型:String,基本类型和对应的引用类型
只要保证客户端请求的参数名称和Action的属性名称一样。
2.在Action中定义javabean对象封装客户端数据
2.1定义实体类
public class Users
{
private String uname;
private String upwd;
private Integer type;
public String getUname()
{
return uname;
}
public void setUname(String uname)
{
this.uname = uname;
}
public String getUpwd()
{
return upwd;
}
public void setUpwd(String upwd)
{
this.upwd = upwd;
}
public Integer getType()
{
return type;
}
public void setType(Integer type)
{
this.type = type;
}
}
2.2定义Action
Action中定义Javabean对象,作为属性
public class UserAction2
{
/***
* 使用javabean对象作为Action的属性,封装客户端请求的数据
* 如果Users类中存在一个属性为Score类型,Score类中存在一个属性Integer类型num * 参数名称怎么写?user.score.num(属性链),struts2框架会自动的属性链上的每一个 * javabean类型进行实例化(ognl) * **/
private Users user;
public Users getUser()
{
return user;
}
public void setUser(Users user)
{
this.user = user;
}
public String userReg2()
{
System.out.println(user.getUname()+" === "+user.getUpwd()+" === "+user.getType());
return Action.SUCCESS;
}
}
2.3注册Action
2.4定义UI页面
<!-- 使用javabean作为Action的属性 -->
<form action="userAction2_userReg2.action" method="post">
<div>
uname:
<input type="text" name="user.uname" />
</div>
<div>
upwd :
<input type="text" name="user.upwd " />
</div>
<div>
type :
<select name="user.type">
<option value="1">管理员</option>
<option value="2">用户</option>
</select>
</div>
<div>
<input type="submit" value="注册" />
</div>
</form>
总结:struts2框架会自动的获得客户端请求的参数,自动的类型转化,自动的封装为需要业务对象。
3 实现接口ModelDriven
ModelDriven:接口使用ognl表达式完成对象执行的封装,而getModel方法的返回值是被默认访问的对象。
3.1定义Action
public class UserAction3 implements ModelDriven<Users>
{
//定义Action的属性,同时进行实例化
private Users user=new Users();
/**
* 该方法会将客户端请求的参数,封装到users对象中,将users对象放入
* Action的值栈中.(ongl)
* 如果实现ModelDriven接口,
* 请求参数会被默认封装带getModel方法的返回值对象中
* 当获取需要的执行的是,默认由getModel方法的返回值对象中获得
* 好处:简化了参数的访问形式(客户端参数的命名,el表示的形式进行简化)
*/
@Override
public Users getModel()
{
System.out.println("---------------"+user);
return user;
}
public String userReg3()
{
System.out.println(user.getUname()+" ------- "+user.getUpwd()+" ------- "+user.getType());
return Action.SUCCESS;
}
}
3.2定义UI页面
<!-- 通过实现ModelDirven接口,封装客户端数据 -->
<form action="userAction3_userReg3.action" method="post">
<div>
uname:
<input type="text" name="uname" />
</div>
<div>
upwd :
<input type="text" name="upwd" />
</div>
<div>
type :
<select name="type">
<option value="1">管理员</option>
<option value="2">用户</option>
</select>
</div>
<div>
<input type="submit" value="注册" />
</div>
</form>
struts2封装客户端数据到Action的更多相关文章
- Struts2.0 封装请求数据和拦截器介绍
1. Struts2 框架中使用 Servlet 的 API 来操作数据 1.1 完全解耦合的方式 Struts2 框架中提供了一个 ActionContext 类,该类中提供了一些方法: stati ...
- 深入了解Struts2返回JSON数据的原理
首先来看一下JSON官方对于"JSON"的解释: JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写.同时也易于机器解析 ...
- (转)Struts2返回JSON数据的具体应用范例
转载自 yshjava的个人博客主页 <Struts2返回JSON数据的具体应用范例> 早在我刚学Struts2之初的时候,就想写一篇文章来阐述Struts2如何返回JSON数据的原理和具 ...
- Struts2返回JSON数据的具体应用范例
早在我刚学Struts2之初的时候,就想写一篇文章来阐述Struts2如何返回JSON数据的原理和具体应用了,但苦于一直忙于工作难以抽身,渐渐的也淡忘了此事.直到前两天有同事在工作中遇到这个问题,来找 ...
- 十一、Struts2封装请求参数的方式
十一.Struts2封装请求参数的方式 方式一.Action 本身作为model对象,通过成员setter封装(一个名字为params的拦截器干的) 注意:表单中的名称要和动作类中的名称一致(这是必须 ...
- Struts2中的数据类型转换
Struts2对数据的类型转换 一.Struts2中自带类型转换拦截器 Struts2内部提供了大量转换器,用来完成数据类型转换的问题,有如下 * boolean 和 Boolean * char和 ...
- 【干货】如何通过OPC自定义接口来实现客户端数据的读取?
上篇博文分享了我的知识库,被好多人关注,受宠若惊.今天我把我在项目中封装的OPC自定义接口的程序分享一下.下面将会简单简单介绍下OPC DA客户端数据访问,以及搭配整个系统的运行环境. OPC(OLE ...
- Jqgrid入门-结合Struts2+json实现数据展示(五)
DEMO用的是ssh框架实现的,具体怎么搭建的就不多做说明了.分页表格的数据操作难点就是数据展现.至于增删改直接用hibernate原生的方法实现即可. 初步分析:表格要实现分页,那么 ...
- Struts2中validate数据校验的两种常用方法
本文主要介绍Struts2中validate数据校验的两种方法及Struts2常用校验器. 1.Action中的validate()方法 Struts2提供了一个Validateable接口,这个接 ...
随机推荐
- 2013nanjingJ
J - Ball Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit Sta ...
- maven 向本地私库导入jar
mvn install:install-file -DgroupId=<your_group_name> -DartifactId=<your_artifact_name> - ...
- PHP的$_SERVER['PHP_SELF']造成的XSS漏洞攻击及其解决方案
$_SERVER['PHP_SELF']简介 $_SERVER['PHP_SELF'] 表示当前 PHP文件相对于网站根目录的位置地址,与 document root 相关. 假设我们有如下网址,$_ ...
- PL/SQL创建数据表空间
创建数据表空间create tablespace stbss datafile 'E:\oracle\product\10.2.0\oradata\orcl\stbss_temp01.dbf' siz ...
- 修改Mysql默认编码
show variables like 'character%';+--------------------------+----------------------------+| Variable ...
- nginx反向代理、动静分离
环境:根据http://www.cnblogs.com/zzzhfo/p/6032095.html配置 方法一:根据目录实现动静分离 在web01创建image并上传一张图片作为静态页面 [root@ ...
- << CocoaPods安装和使用教程 >>github code4app以及cocoachina 苹果官方文档
developer.apple.com 英文搜索各个技术的官方介绍文档, 前提是英文过关 cocoachina ios最新新闻, 信息 code4app上有许多组件 http://www.code4a ...
- 应用HTK搭建语音拨号系统4: 识别器评估
选自:http://maotong.blog.hexun.com/6261890_d.html 苏统华 哈尔滨工业大学人工智能研究室 2006年10月30日 声明:版权所有,转载请注明作者和来源 该系 ...
- 【GoLang】golang 微服务框架 介绍
原文如下: rpcx是一个类似阿里巴巴 Dubbo 和微博 Motan 的分布式的RPC服务框架,基于Golang net/rpc实现. 谈起分布式的RPC框架,比较出名的是阿里巴巴的dubbo,包括 ...
- wireshark 和 Httpwatch tcpdump
wireshark 功能强大,适用性高.过滤功能好. Httpwatch 功能单一,优缺点明显,但是非常适合抓取http交互的包,而且可以非常明确的显示出整个的交互过程. tcpdump linux ...