struts2框架之请求参数(参考第二天学习笔记)
获取请求参数
请求参数:表单中的数据,或者是超链接中的数据。
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框架之请求参数(参考第二天学习笔记)的更多相关文章
- struts2框架之类型转换(参考第二天学习笔记)
类型转换 1. 什么是类型转换 刚才学习了封装请求参数,把表单数据封装到Action(模型)的属性中.表单中的数据都是String类型,但Action(模型)的属性不一定什么类型. 将来我们还需要数据 ...
- struts2框架之国际化(参考第二天学习笔记)
国际化 1. 回忆之前的国际化 1). 资源包(key=字符串) > 命名:基本名称+local部分.properties,res_zh.properties,res_zh_CN.propert ...
- struts2框架之拦截器(参考第二天学习笔记)
拦截器 1. 什么是拦截器 1). 与JavaWeb中的Filter比较相似. 2). 拦截器只能拦截Action!!! 2. Struts中定义了很多拦截器,其中defaultStack中的拦截器会 ...
- struts2框架之输入校验(参考第二天学习笔记)
输入校验: 1. 分类 客户端校验:javascript,它是用户体验而已,可以绕开. 服务器端校验 * 代码校验 1). 要求Action必须继承ActionSupport 2). 重写Action ...
- Struts2之处理请求参数
时间:2017-1-11 11:05 --Struts2中获取请求参数(重点)1.Struts2是一个MVC框架,那么分别表示什么? View:JSP Model:Action Co ...
- struts2 action接收请求参数和类型转换
1,action接收请求参数 在struts2中action是什么?(struts2是一个mvc框架) V:jsp M:action C:action ...
- Docker技术入门与实战 第二版-学习笔记-10-Docker Machine 项目-2-driver
1>使用的driver 1〉generic 使用带有SSH的现有VM/主机创建机器. 如果你使用的是机器不直接支持的provider,或者希望导入现有主机以允许Docker Machine进行管 ...
- 《Linux内核分析》第二周学习笔记
<Linux内核分析>第二周学习笔记 操作系统是如何工作的 郭垚 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/ ...
- Linux内核分析第二周学习笔记
linux内核分析第二周学习笔记 标签(空格分隔): 20135328陈都 陈都 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.co ...
随机推荐
- mysql:insert插入数据过慢如何解决,设置innodb_flush_log_at_trx_commit为0就能解决
问题: 最近在做性能测试,造数据,发现insert好慢,只有几十条每秒,很奇怪,最后再网上找到了原因. 网文如下: MY SQL insert 速度过慢 最近在用MySQL做存储,测试中发现插入数据太 ...
- POJ - 2057 The Lost House(树形DP+贪心)
https://vjudge.net/problem/POJ-2057 题意 有一只蜗牛爬上某个树枝末睡着之后从树上掉下来,发现后面的"房子"却丢在了树上面,.现在这只蜗牛要求寻找 ...
- springboot(十九):SpringBoot+EHcache实现缓存
https://blog.csdn.net/qq_28143647/article/details/79789368
- JS创建对象之组合使用构造函数模式和原型模式
function Person(name, age, job) { this.name = name; this.age = age; this.job = job; this.friends = { ...
- Groovy 设计模式 -- 抽象工厂 模式
抽象工厂 https://blog.csdn.net/wyxhd2008/article/details/5597975 首先来看看这两者的定义区别: 工厂模式:定义一个用于创建对象的借口,让子类决定 ...
- 代码管理工具:使用github和git工具管理自己的代码
一.git工具和账户创建 1.1 安装 Git 是 Linus Torvalds 最近实现的源代码管理软件."Git 是一个快速.可扩展的分布式版本控制系统,它具有极为丰富的命令集,对内部系 ...
- node之http模块总结
[文档归档文] 参考文献:https://nodejs.org/dist/latest-v6.x/docs/api/http.html
- flash 概要分析器
这个东东 调试用.会每毫秒一次记录正在运行的函数 及相关数据 只在调试版flash player才能用. startSampling 开始记录 getSamples 获取记录 Sample ...
- bootstrap table 冻结列 ie 兼容
修改前: Chrome效果 Ie11效果 修改后: Ie11效果 修改bootstrap-table-fixed-columns.js文件 修改其中的initBody方法 修改为
- python之读写文件
1. 读取文件数据,文件必须存在才可以读且如要读取的文件不和当前.py在同一个包下,需要特别指定此文件路径才行 f=open('test.txt',encoding='utf-8')#填写文件路径,打 ...