Struts2 模型驱动及页面回显
* 要从页面中获取表单元素的值,需要在动作类中声明与页面元素同名的属性。导致动作类中既有javabean又有业务方法。
* 将javabean和业务方法进行分离:
* 将重新创建一个javabean,将javabean的内容放置其中。
* 动作类action中只留业务方法
* 在动作类中声明的javabean无法从页面中获取同名的属性
* 需要使用struts2框架提供"ModelDriven(模型驱动)"
* 实现ModelDriven这个接口
* 重写getModel()方法,返回该javabean的实例
* 代码如下:
public class UserAction extends ActionSupport implements ModelDriven<User> {
private User user = new User();
public User getModel() {
return user;
}
public String add(){
System.out.println("UserAction ************* add()");
return "add";
}
public String save(){
System.out.println("UserAction ************* save()");
return "success";
}
}
* 模型驱动的原理:
* 在不使用模型驱动的时候,之所以在动作类中获取不到对应的属性的原因:
* 在ValueStack中没有对应javabean的所有属性
* 模型驱动的作用,就是将javabean的实例压入对象栈的栈顶,从而可以获取到对应的属性的值
页面回显技术:
* 通过模型驱动,在动作类action中,可以获取到页面中元素的值
//方法一
* 通过javabean实例的set()方法,将新的内容set到javabean中,从而放置在页面对应元素中
user.setUsername(newUser.getUsername());
user.setTel(newUser.getTel());
user.setDes(newUser.getDes());
//方法二
* 首先将值栈中,旧的javabean的内容,删除掉
* 然后将新的内容压入到值栈中的栈顶
ValueStack valueStack = ServletActionContext.getContext().getValueStack();
valueStack.pop();
valueStack.push(newUser);
最新文章
- Javascript获取div真实高度
- 归并排序算法 java 实现
- mybatis-generator-config工具的使用
- 关于android的UI更新机制与误区
- JAVA基础学习day13--String、StringBuilder与StringBuffer与包装类
- 文件和目录之stat、fstat和lstat函数
- 如何从软硬件层面提升 Android 动画性能?
- win7安装memcached
- python给多个发送邮件附件,参考于《python自动化运维》
- Java NIO--初步认识
- HyperLedger Fabric基于zookeeper和kafka集群配置解析
- C# 托管堆和垃圾回收器GC
- es6(四):Symbol,Set,Map
- mybatis_02简单操作数据库
- 单片机成长之路(51基础篇) - 015 关于sdcc的多文件编译范例二
- Error creating bean with name &#39;transactionManager&#39;
- 【1】windows下IOS开发基础环境搭建
- 监听home键+模拟home键
- 基于 Laravel 开发博客应用系列 —— Homestead 和 Laravel 安装器
- Nginx采用yum安装-Carr
热门文章
- ZooKeeper 应用场景
- Javascript闭包与作用域
- Failed to load resource: the server responded with a status of 413 (Request Entity Too Large)
- Substrings
- 游标、获取本地本地多个文件、Excel数据导入、跨服务器数据拷贝、行转列示例
- 处理鼠标响应事件(最简单控件 good)
- MySQL全连接(Full Join)实现,union和union all用法
- 【模拟】HDU 5762 Teacher Bo
- 编写高质量js代码
- 64位操作系统 注册 capicom.dll