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接口,这个接 ...
随机推荐
- nyoj 236心急的C小加 动态规划( java)
sort函数用法: #include<algorithm> using namespace std; sort(a,a+len;cmp) //a-->数组名, len-- ...
- 扁平化设计五大原则(转自CSDN翻译)
Cousins表示他虽然对扁平化设计的感觉非常强烈,但并没有特别热爱或者特别讨厌扁平化设计.他认为好的设计不应当局限于某种设计风格,而需要更注重可用性.有用性.如果因为时尚的缘故,那就顺其自然吧.但该 ...
- 大数据之Ganglia
1.什么是ganglia 一个开源集群监视项目:Ganglia可以做系统监控,但是,目前它不支持服务器异常或故障报警功能. 2.Ganglia监控集群架构 Ganglia 集群主要是由gmond.gm ...
- Spring的问题解决记录
问题:在MyEclipse中项目工程重命名以后,例如 原来叫HttpService,改为GameApp,但是项目跑起来发现,tomcat服务器依旧为GameApp目录结构,访问也只能GameApp访问 ...
- Ubuntu 14 如何打开 .chm格式文档?
好多手册是.chm格式,Ubuntu是需要安装第三方软件才能打开.chm格式文档,操作方式如下: 到“软件中心” -> 搜索“xchm”,并安装 -> 右键某个.chm文档,选择“属性” ...
- js分页--存储数据并进行分页
//分页方法 var page = function(){ this.v = { o:null,//ul父级层 home:null, previous:null, next:null, last:nu ...
- FineUI第十五天---表格概述
Grid表格概述 跟Asp.Net的差不多. 下面介绍一些属性: ExpandUnusedSpace:此列充满所有的剩余空间,并且随着表格宽度变化而变化 DataToolTipField:用来显示 ...
- android service被系统回收的解决方法
自己的app的service总是容易被系统回收,搜罗了一下,基本上的解决思路有以下几种: 1.把service写成系统服务,将永远不会被回收(未实践): 在Manifest.xml文件中设置persi ...
- Effective Java 读书笔记之三 类和接口
一.使类和成员的可访问性最小化 1.尽可能地使每个类或者成员不被外界访问. 2.实例域决不能是共有的.包含公有可变域的类不是线程安全的. 3.除了公有静态final域的特殊情形之外,公有类都不应该包含 ...
- HDU 5074 Hatsune Miku(2014鞍山赛区现场赛E题)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5074 解题报告:给出一个长度为n的序列,例如a1,a2,a3,a4......an,然后这个序列的美丽 ...