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

Struts2 模型驱动及页面回显的更多相关文章

  1. 页面回显与URL模板映射

    一.页面回显 对于需要返回界面的数据,可以将后台封装好的数据回显至原始jsp界面中. 举个例子: User.java package com.zk.data; public class User { ...

  2. Struts2标签<s:checkboxlist>回显问题

    Struts2 checkboxlist回显问题中,说明两种方式,第一种方式很普遍,第二种则是个人根据现有资源加上尝试得来的成果,第二种主要是为个人笔记(其中相关知识点不一一介绍). 一.普通方法: ...

  3. Struts2实现input数据回显

    /** 修改页面 */    public String editUI() {        //准备回显得数据        Role role = roleService.getById(id); ...

  4. Struts2第十一篇【简单UI标签、数据回显】

    Struts2UI标签 Sturts2为了简化我们的开发,也为我们提供了UI标签-也就是显示页面的标签-.. 但是呢,Struts2是服务端的框架,因此使用页面的标签是需要在服务器端解析然后再被浏览器 ...

  5. Struts2【UI标签、数据回显、资源国际化】

    Struts2UI标签 Sturts2为了简化我们的开发,也为我们提供了UI标签...也就是显示页面的标签..... 但是呢,Struts2是服务端的框架,因此使用页面的标签是需要在服务器端解析然后再 ...

  6. 基于BootStrap的Collapse折叠(包含回显展开折叠的对应状态)

    情况描述:为了改善页面上的input框太多,采用∧∨折叠展开,这个小东西来控制,第一次做,记录一下ヾ(◍°∇°◍)ノ゙下边是Code 代码: //html代码 <div id="col ...

  7. 使用Dropzone上传图片及回显演示样例

    一.图片上传所涉及到的问题 1.HTML页面中引入这么一段代码 <div class="row"> <div class="col-md-12" ...

  8. 一脸懵逼学习Struts数据校验以及数据回显,模型驱动,防止表单重复提交的应用。

    1:Struts2表单数据校验: (1)前台校验,也称之为客户端校验,主要是通过Javascript编程的方式进行数据的验证. (2)后台校验,也称之为服务器校验,这里指的是使用Struts2通过xm ...

  9. Struts数据回显和模型驱动

    prams拦截器,可以把请求数据自动填充的action的属性中 举例1: JSP <input type=text name=userName /> <input type=text ...

随机推荐

  1. raspberry pi 3 截图及查看

    RASPBIAN JESSIE WITH PIXEL Image with PIXEL desktop based on Debian Jessie Version:November 2016 Rel ...

  2. iphone升级ios7之后出现蓝框框一直跳的问题

    问题描述:iphone升级ios7之后出现蓝框框一直跳            解决办法:设置-通用-辅助功能-切换控制-里边打开了切换控制及自动扫描,直接关闭切换控制就好了

  3. 转:MFC之COleVariant

    COleVariant 本质上是一个枚举,用同一种类型来表达不同的子类型.如同boost中的variant. 例子 COleVariant var(3.6f); float v = var.fltVa ...

  4. 用SQL求1到N的质数和

    今天在百度知道中,遇到了一位朋友求助:利用sql求1到1000的质数和.再说今天周五下午比较悠闲,我就在MSSQL 2008中写了出来,现在分享在博客中,下面直接贴代码: declare @num i ...

  5. Wad Manager的下载和运行

    关于WAD版的软件 WAD版的软件分为两种: 独立安装版:程序完全安装在Wii的内置存储空间上,可以在Wii的主界面直接启动软件. Forwarder版:程序安装在Wii的内置存储空间上,同时在SD卡 ...

  6. 《算法问题实战策略》-chaper32-网络流

    基本的网络流模型: 在图论这一块初步的应用领域中,两个最常见的关注点,其一时图中的路径长度,也就是我们常说的的最短路径问题,另一个则是所谓的“流问题”. 流问题的基本概念: 首先给出一张图. 其实所谓 ...

  7. [置顶] Firefox OS 学习——Gaia 编译分析

    Gaia作为用户的接口,也是用户可见部分,一些用户的应用也是安装在这一层,所以研究他是很有必要的,对于像我这样的初学者,最直接的学习方法就是通过修改代码,然后可以看到UI的变化,很直观的观察修改结果. ...

  8. spring配置文件中id与name

    1.id属性命名必须满足XML的命名规范,因为id其实是XML中就做了限定的. 2.name属性则没有这些限定,你可以使用几乎任何的名称 3.配置文件中不允许出现两个id相同的<bean> ...

  9. rpm与dpkg yum与apt-get详解

    由于自由软体的蓬勃发展,加上大型Unix-Like 主机的强大效能,让很多软体开发者将他们的软体使用Tarball 来释出. 后来Linux 发展起来后,由一些企业或社群将这些软体收集起来制作成为di ...

  10. php显示日期(今天、昨天、本周、上周、本月、上月、)

    <?php //今天 $today = date("Y-m-d"); //昨天 $yesterday = date("Y-m-d", strtotime( ...