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. I’ve seen the world,lit it up as my stage now

    I've seen the world,lit it up as my stage now 阅尽繁华 点亮红尘做舞台 Channeling angels in,the new age now 粉末登场 ...

  2. Go - template 常用方法详解 及 注意事项

    Go template包下面有两个函数可以创建模板实例 func New(name string) *Template func ParseFiles(filenames ...string) (*T ...

  3. JSP自定义标签之Hello Costom tag小例子

    1.项目结构 2.实现自定义tag所需依赖 <dependency> <groupId>javax.servlet</groupId> <artifactId ...

  4. Ajax前台调用后台方法、AJAX Pro2(回调函数)

    //获取分店 function cityResult() { if (cityName != "") { $("#ddlcity_").find("o ...

  5. VVDocumenter升级后不能使用问题

    VVDocumenter-Xcode是Xcode上一款快速添加标准注释,并可以自动生成文档的插件.有了VVDocumenter-Xcode,规范化的注释,只需要输入三个斜线“///”就可以搞定,非常方 ...

  6. java的字体的颜色,型号,大小的方法

    jTextPane1.setForeground(Color.green);//设置java字体的颜色   设置字体的颜色和型号和大小 jTextPane1.setFont(new Font(&quo ...

  7. BZOJ 1670: [Usaco2006 Oct]Building the Moat护城河的挖掘

    Description 求凸包周长. Sol 凸包+计算几何. 这好像叫什么 Graham Scan 算法... 这个可以求凸包的周长,直径,面积. 选择一个基点,然后按极角排序,最后用一个栈一直维护 ...

  8. 如何给ZenCart网站livezilla客服系统?

    大致步骤: 1 去官网下载livezilla

  9. 一个简单的Python网络爬虫(抓图),针对某论坛.

    #coding:utf-8 import urllib2 import re import threading #图片下载 def loadImg(addr,x,y,artName): data = ...

  10. 全部springxml文件约束 applicationContext.xml

    <?xml version="1.0" encoding="utf-8"?> <beans xmlns="http://www.sp ...