获取请求参数

请求参数:表单中的数据,或者是超链接中的数据。

1. 得到request,再通过request来获取。
2. 属性驱动
在Action中提供与表单字段名称相同的属性即可。
而一个名为params的拦截器来完成!
3. 模型驱动(最为常用)
1). 给出一个model类
2). 在Action类中定义model成员,必须手动实例化。
3). Action类必须实现ModelDriven接口
4). ModelDriven接口只有一个方法,叫getModel(),我们让它返回model对象。

params会查看你的Action是否实现了ModelDriven接口,如果实现了,那么调用getModel()方法得到model对象,然后完成封装
如果没有实现,那么把数据封装到当前Action对象中

<form>
<input type="text" name="username"/>
<input type="password" name="password"/>
...
</form>

class Action {
private String username;
private String password;
.. setter/getter
}

class User {
private String username;
private String password;
... getter/setter
}
class MyAction implements ModelDriven<User> {
private User model = new User();//手动实例化
public User getModel() {
return model;
}
}

4. OGNL方式

在Action中正常给出属性,无论属性的类型是什么,可以是User类型,也可以是List<User>,甚至是Map<String,User>

使用OGNL是在页面的表单中。

<input type="text" name="user.usernmae"/>,其中user.username是OGNL表达式,它表示当前Action的user的username属性。
<input type="text" name="userList[0].usernmae"/>,定位:当前Action的userList属性的下标为0元素的username属性
<input type="text" name="userMap['zhangSan'].username"/>,定位:当前Action的userMap属性的键为zhangSan的元素的username属性

struts2框架之请求参数(参考第二天学习笔记)的更多相关文章

  1. struts2框架之类型转换(参考第二天学习笔记)

    类型转换 1. 什么是类型转换 刚才学习了封装请求参数,把表单数据封装到Action(模型)的属性中.表单中的数据都是String类型,但Action(模型)的属性不一定什么类型. 将来我们还需要数据 ...

  2. struts2框架之国际化(参考第二天学习笔记)

    国际化 1. 回忆之前的国际化 1). 资源包(key=字符串) > 命名:基本名称+local部分.properties,res_zh.properties,res_zh_CN.propert ...

  3. struts2框架之拦截器(参考第二天学习笔记)

    拦截器 1. 什么是拦截器 1). 与JavaWeb中的Filter比较相似. 2). 拦截器只能拦截Action!!! 2. Struts中定义了很多拦截器,其中defaultStack中的拦截器会 ...

  4. struts2框架之输入校验(参考第二天学习笔记)

    输入校验: 1. 分类 客户端校验:javascript,它是用户体验而已,可以绕开. 服务器端校验 * 代码校验 1). 要求Action必须继承ActionSupport 2). 重写Action ...

  5. Struts2之处理请求参数

    时间:2017-1-11 11:05 --Struts2中获取请求参数(重点)1.Struts2是一个MVC框架,那么分别表示什么?    View:JSP    Model:Action    Co ...

  6. struts2 action接收请求参数和类型转换

    1,action接收请求参数 在struts2中action是什么?(struts2是一个mvc框架)         V:jsp        M:action         C:action  ...

  7. Docker技术入门与实战 第二版-学习笔记-10-Docker Machine 项目-2-driver

    1>使用的driver 1〉generic 使用带有SSH的现有VM/主机创建机器. 如果你使用的是机器不直接支持的provider,或者希望导入现有主机以允许Docker Machine进行管 ...

  8. 《Linux内核分析》第二周学习笔记

    <Linux内核分析>第二周学习笔记 操作系统是如何工作的 郭垚 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/ ...

  9. Linux内核分析第二周学习笔记

    linux内核分析第二周学习笔记 标签(空格分隔): 20135328陈都 陈都 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.co ...

随机推荐

  1. weblogic每天日志合并shell脚本 [个人记录]【转】【补】

    from RogerZhu modified by King sh logback.rb "/data/logs/" "/tmp/domain" "a ...

  2. node 跨域请求设置

    http.createServer((req,res)=>{ //设置允许跨域的域名,*代表允许任意域名跨域 res.setHeader("Access-Control-Allow-O ...

  3. 改变this指向的三种方法

    call.apply.bind三者为改变this指向的方法. 共同点:第一个参数都为改变this的指针.若第一参数为null/undefined,this默认指向window call(无数个参数) ...

  4. javascript&&jquery编写插件模板

    javascrpt插件编写模板 这里不分享如何编写插件,只留一个框架模板,使用面向对象的形式进行编写,方便管理 ;(function(window,document){ function FnName ...

  5. Linq中Sum和Group的使用

    ].AsEnumerable() group c by c.Field<int>("Name") into s select new { ID = s.Select(m ...

  6. hadoop1.2.1的安装

    前提:1.机器最好都做ssh免密登录,最后在启动hadoop的时候会简单很多 免密登录看免密登录 2.集群中的虚拟机最好都关闭防火墙,否则很麻烦 3集群中的虚拟机中必须安装jdk. 具体安装步骤如下: ...

  7. Spring整合redis配置文件详解

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

  8. 二叉搜索树BST

    //遍历 void print(int p){ if(!p) return; print(left[p]); printf("%d\n",a[p]); print(right[p] ...

  9. MySQL相关信息之数据库操作(三)

    1.创建数据库 CREATE  {DATABASE  |  SCHEMA}  [IF NOT EXISTS]  DB_NAME [DEFAULT]  CHARACTER SET [=] charset ...

  10. ansible学习笔记二

    Ad-Hoc命令: 所谓Ad-Hoc,简而言之是"临时命令",英文中作为形容词有"特别的,临时"的含义.Ad-Hoc只是官方对Ansible命令的一种称谓. 从 ...