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接口,这个接 ...
随机推荐
- 2.交通聚类 -层次聚类(agnes)Java实现
1.项目背景 在做交通路线分析的时候,客户需要找出车辆的行车规律,我们将车辆每天的行车路线当做一个数据样本,总共有365天或是更多,从这些数据中通过聚类来获得行车路线规律统计分析. 我首先想到是K-m ...
- 【C语言入门教程】7.5 枚举
在实际应用中,有的变量只有几种可能取值.如人的性别只有两种可能取值,星期只有七种可能取值.在 C 语言中对这样取值比较特殊的变量可以定义为枚举类型.所谓枚举是指将变量的值一一列举出来,变量只限于列举出 ...
- JAVA 笔记
一.Java基础以及面向对象编程1.float类型的数自动转换成double类型时,可能会出现前后不相等的情况,因为有些数不能够用有限的二进制位精确表示.2.右移>>右移,左边空出位以符号 ...
- xcode 插件
http://www.cocoachina.com/ios/20160122/15080.html https://github.com/rickytan/RTImageAssets http://m ...
- canvas对象arc函数的使用-遁地龙卷风
(-1)写在前面 我用的是chrome49 <canvas id="lol" height="300"></canvas> (1)详细介 ...
- Android开发资源推荐第2季
Android CPU监控想法,思路,核心技术和代码 Android App /Task/Stack 总体分析 http://www.eoeandroid.com/thread-161703-1-1. ...
- leetcode 124. Binary Tree Maximum Path Sum
Given a binary tree, find the maximum path sum. For this problem, a path is defined as any sequence ...
- GCD-Grand Central Dispatch
经常要用的,总结分类一下. //获得队列 DISPATCH_QUEUE_PRIORTY 优先级 dispatch_queue_t Queue = dispatch_get_global_queue(D ...
- django初始
创建django工程 django-admin startproject [工程名称] mysite - mysite # 对整个程序进行配置 - init - settings # 配置文件 - u ...
- 转:JQuery读写Cookie
Cookies是一种能够让网站服务器把少量数据储存到客户端的硬盘或内存,或是从客户端的硬盘读取数据的一种技术.当你浏览某网站时,你硬盘上会生产一个非常小的文本文件,它可以记录你的用户ID.密码.浏览过 ...