http://www.cnblogs.com/Topless/archive/2012/01/17/2324980.html

例子都为struts2中的文档例子

JSP提交数据:
 
<s:form action="modelDrivenResult" method="POST" namespace="/modelDriven">  
    <s:textfield label="Gangster Name" name="name" />
    <s:textfield label="Gangster Age"  name="age" />
    <s:checkbox  label="Gangster Busted Before" name="bustedBefore" />
    <s:textarea  cols="30" rows="5" label="Gangster Description" name="description" />          
    <s:submit />
</s:form>

根据数据提交的action,和namespace,修改struts.xml的内容

添加下面配置到struts.xml
 
    <package name="base2" namespace="/modelDriven" extends="struts-default">
        <action name="modelDrivenResult" class="ModelDrivenAction">
            <result>/Hello.jsp</result>
        </action>
    </package>

 然后添加处理数据的action,这里使用ModelDriven的方式。该action继承ModelDriven接口,实现getModel()方法,方法只返回一个模型对象,默认转换Object。只要改模型对象提供的方法和提交数据的name属性对应,struts2就能自动把数据赋给模型对象,最后对象提供各种get方法把数据存放在值栈,传递到Hello.jsp。

处理的action,返回模型对象Gangster。
 
public class ModelDrivenAction extends ActionSupport implements ModelDriven {
    public String execute() throws Exception {
        return SUCCESS;
    }
 
    public Object getModel() {
        return new Gangster();
    }
}
模型类
 
public class Gangster implements Serializable {
    private String name;
    private int age;
    private String description;
    private boolean bustedBefore;
 
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public boolean isBustedBefore() {
        return bustedBefore;
    }
    public void setBustedBefore(boolean bustedBefore) {
        this.bustedBefore = bustedBefore;
    }
    public String getDescription() {
        return description;
    }
    public void setDescription(String description) {
        this.description = description;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}

最后Hello.jsp中可以使用<s:property value=".."/>取值,value直接使用相应的age,name等。而action虽然提供的getModel()方法,但因为转为了Object,而Object不能提供取值的方法,所以无法使用value="model.xxx"来取值。

struts2中的ModelDriven使用的更多相关文章

  1. Struts2中的ModelDriven机制及其运用

    所谓ModelDriven,意思是直接把实体类当成页面数据的收集对象.比如,有实体类User如下: package cn.com.leadfar.struts2.actions; public cla ...

  2. Struts2中的ModelDriven机制及其运用(转)

    所谓ModelDriven,意思是直接把实体类当成页面数据的收集对象.比如,有实体类User如下: package cn.com.leadfar.struts2.actions; public cla ...

  3. Struts2中的ModelDriven机制及其运用、refreshModelBeforeResult属性解决的问题

    1.为什么需要ModelDriven? 所谓ModelDriven,意思是直接把实体类当成页面数据的收集对象.比如,有实体类User如下: package cn.com.leadfar.struts2 ...

  4. Struts2中的ModelDriven接口

    若没有实现ModelDriven的接口,Controll的代码会比较冗余,不能实现Controll和Model代码的分离 下面是没有实现ModelDriven接口的SuggestAction pack ...

  5. struts2中的jsp值传到后台action接收的三种方法

    struts2中的Action接收表单传递过来的参数有3种方法: 如,登陆表单login.jsp: <form action="login" method="pos ...

  6. 简单理解Struts2中拦截器与过滤器的区别及执行顺序

    简单理解Struts2中拦截器与过滤器的区别及执行顺序 当接收到一个httprequest , a) 当外部的httpservletrequest到来时 b) 初始到了servlet容器 传递给一个标 ...

  7. struts2中jsp前台传值到后台action的方法(转)

    在Struts2中jsp前台传值到action后台的方法 分类: java2012-02-28 13:58 2171人阅读 评论(1) 收藏 举报 actionstrutsjspgetterstrin ...

  8. Struts2中Action取得表单数据的几种方法

    Struts2中Action取得表单数据的几种方法   Struts2中Action获得表单数据的几种方法struts2 Action获取表单传值 1.通过属性驱动式JSP: <form act ...

  9. Struts2中的 配置文件

    struts2中涉及到的配置文件有: web.xml.struts.xml.struts.properties.default.properties.struts-default.xml web.xm ...

随机推荐

  1. K-近邻算法的Python实现 : 源代码分析

    网上介绍K-近邻算法的样例非常多.其Python实现版本号基本都是来自于机器学习的入门书籍<机器学习实战>,尽管K-近邻算法本身非常easy,但非常多刚開始学习的人对其Python版本号的 ...

  2. Bounded Context

    From http://martinfowler.com/bliki/BoundedContext.html Bounded Context is a central pattern in Domai ...

  3. eclispe查看jdk源码后特别卡顿导致未响应解决

    第一步:Eclipse -> Preferences -> General -> Startup and Shutdown.不要勾选 RSE UI. 第二步:Eclipse -> ...

  4. JavaScript类数组转换为数组 面试题

    1.JavaScript类数组转换为数组 (1)方法一:借用slice (2)方法二:Array.from 2.代码 <!DOCTYPE html> <html lang=" ...

  5. Hadoop eclipse插件使用过程中出现的问题

    http://download.csdn.net/detail/java2000_wl/4326323 转自http://www.ithao123.cn/content-945210.html 由于h ...

  6. ABP框架EF6链接Oracle数据库手动迁移

    环境:VS2017 + ABP官方模板(不含Zero) +Oracle 11Gx64DB  + Oracle 11Gx32Client(PLSQL工具访问) 一.Abp项目的下载以及运行 1.创建ab ...

  7. 调用获取学生信息的接口,保存到excel里面的小程序

    # 2.http: // doc.nnzhp.cn / index.php?s = / 6 & page_id = 14# 调用获取学生信息的接口,保存到excel里面 import requ ...

  8. mysql 随机取数据

    SELECT * FROM table WHERE id >= (SELECT FLOOR(RAND()*MAX(id)) FROM table ) ORDER BY idLIMIT 1; 这样 ...

  9. flume配置和说明(转)

    Flume是什么 收集.聚合事件流数据的分布式框架 通常用于log数据 采用ad-hoc方案,明显优点如下: 可靠的.可伸缩.可管理.可定制.高性能 声明式配置,可以动态更新配置 提供上下文路由功能 ...

  10. CentOs yum源安装 nginx

    1 更新源 [root@server ~]#rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.no ...