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的更多相关文章

  1. Struts2.0 封装请求数据和拦截器介绍

    1. Struts2 框架中使用 Servlet 的 API 来操作数据 1.1 完全解耦合的方式 Struts2 框架中提供了一个 ActionContext 类,该类中提供了一些方法: stati ...

  2. 深入了解Struts2返回JSON数据的原理

    首先来看一下JSON官方对于"JSON"的解释: JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写.同时也易于机器解析 ...

  3. (转)Struts2返回JSON数据的具体应用范例

    转载自 yshjava的个人博客主页 <Struts2返回JSON数据的具体应用范例> 早在我刚学Struts2之初的时候,就想写一篇文章来阐述Struts2如何返回JSON数据的原理和具 ...

  4. Struts2返回JSON数据的具体应用范例

    早在我刚学Struts2之初的时候,就想写一篇文章来阐述Struts2如何返回JSON数据的原理和具体应用了,但苦于一直忙于工作难以抽身,渐渐的也淡忘了此事.直到前两天有同事在工作中遇到这个问题,来找 ...

  5. 十一、Struts2封装请求参数的方式

    十一.Struts2封装请求参数的方式 方式一.Action 本身作为model对象,通过成员setter封装(一个名字为params的拦截器干的) 注意:表单中的名称要和动作类中的名称一致(这是必须 ...

  6. Struts2中的数据类型转换

    Struts2对数据的类型转换 一.Struts2中自带类型转换拦截器 Struts2内部提供了大量转换器,用来完成数据类型转换的问题,有如下 * boolean 和 Boolean * char和 ...

  7. 【干货】如何通过OPC自定义接口来实现客户端数据的读取?

    上篇博文分享了我的知识库,被好多人关注,受宠若惊.今天我把我在项目中封装的OPC自定义接口的程序分享一下.下面将会简单简单介绍下OPC DA客户端数据访问,以及搭配整个系统的运行环境. OPC(OLE ...

  8. Jqgrid入门-结合Struts2+json实现数据展示(五)

    DEMO用的是ssh框架实现的,具体怎么搭建的就不多做说明了.分页表格的数据操作难点就是数据展现.至于增删改直接用hibernate原生的方法实现即可.         初步分析:表格要实现分页,那么 ...

  9. Struts2中validate数据校验的两种常用方法

    本文主要介绍Struts2中validate数据校验的两种方法及Struts2常用校验器.  1.Action中的validate()方法 Struts2提供了一个Validateable接口,这个接 ...

随机推荐

  1. 2.交通聚类 -层次聚类(agnes)Java实现

    1.项目背景 在做交通路线分析的时候,客户需要找出车辆的行车规律,我们将车辆每天的行车路线当做一个数据样本,总共有365天或是更多,从这些数据中通过聚类来获得行车路线规律统计分析. 我首先想到是K-m ...

  2. 【C语言入门教程】7.5 枚举

    在实际应用中,有的变量只有几种可能取值.如人的性别只有两种可能取值,星期只有七种可能取值.在 C 语言中对这样取值比较特殊的变量可以定义为枚举类型.所谓枚举是指将变量的值一一列举出来,变量只限于列举出 ...

  3. JAVA 笔记

    一.Java基础以及面向对象编程1.float类型的数自动转换成double类型时,可能会出现前后不相等的情况,因为有些数不能够用有限的二进制位精确表示.2.右移>>右移,左边空出位以符号 ...

  4. xcode 插件

    http://www.cocoachina.com/ios/20160122/15080.html https://github.com/rickytan/RTImageAssets http://m ...

  5. canvas对象arc函数的使用-遁地龙卷风

    (-1)写在前面 我用的是chrome49 <canvas id="lol" height="300"></canvas> (1)详细介 ...

  6. Android开发资源推荐第2季

    Android CPU监控想法,思路,核心技术和代码 Android App /Task/Stack 总体分析 http://www.eoeandroid.com/thread-161703-1-1. ...

  7. 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 ...

  8. GCD-Grand Central Dispatch

    经常要用的,总结分类一下. //获得队列 DISPATCH_QUEUE_PRIORTY 优先级 dispatch_queue_t Queue = dispatch_get_global_queue(D ...

  9. django初始

    创建django工程 django-admin startproject [工程名称] mysite - mysite # 对整个程序进行配置 - init - settings # 配置文件 - u ...

  10. 转:JQuery读写Cookie

    Cookies是一种能够让网站服务器把少量数据储存到客户端的硬盘或内存,或是从客户端的硬盘读取数据的一种技术.当你浏览某网站时,你硬盘上会生产一个非常小的文本文件,它可以记录你的用户ID.密码.浏览过 ...