* 要从页面中获取表单元素的值,需要在动作类中声明与页面元素同名的属性。导致动作类中既有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);

最新文章

  1. Javascript获取div真实高度
  2. 归并排序算法 java 实现
  3. mybatis-generator-config工具的使用
  4. 关于android的UI更新机制与误区
  5. JAVA基础学习day13--String、StringBuilder与StringBuffer与包装类
  6. 文件和目录之stat、fstat和lstat函数
  7. 如何从软硬件层面提升 Android 动画性能?
  8. win7安装memcached
  9. python给多个发送邮件附件,参考于《python自动化运维》
  10. Java NIO--初步认识
  11. HyperLedger Fabric基于zookeeper和kafka集群配置解析
  12. C# 托管堆和垃圾回收器GC
  13. es6(四):Symbol,Set,Map
  14. mybatis_02简单操作数据库
  15. 单片机成长之路(51基础篇) - 015 关于sdcc的多文件编译范例二
  16. Error creating bean with name &#39;transactionManager&#39;
  17. 【1】windows下IOS开发基础环境搭建
  18. 监听home键+模拟home键
  19. 基于 Laravel 开发博客应用系列 —— Homestead 和 Laravel 安装器
  20. Nginx采用yum安装-Carr

热门文章

  1. ZooKeeper 应用场景
  2. Javascript闭包与作用域
  3. Failed to load resource: the server responded with a status of 413 (Request Entity Too Large)
  4. Substrings
  5. 游标、获取本地本地多个文件、Excel数据导入、跨服务器数据拷贝、行转列示例
  6. 处理鼠标响应事件(最简单控件 good)
  7. MySQL全连接(Full Join)实现,union和union all用法
  8. 【模拟】HDU 5762 Teacher Bo
  9. 编写高质量js代码
  10. 64位操作系统 注册 capicom.dll