`
jayung
  • 浏览: 59999 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Struts2的三种传值方式比较(附demo)

阅读更多

1. 属性驱动

     一般在初学struts2时,都是从属性驱动开始的。

属性驱动是指在Action类里,包含表单里对应的字段(字段名一致)和对应的setter、getter。

表单:

username: <input type="text" name="username" /><br/>
password: <input type="text" name="password" /><br/>

 对应的Action:LoginAction:

private String username;
private String password;
// getter、setter
public String execute() {
// dosomething();
}

Action页面则可以通过${username}来访问username属性。 

属性驱动对于表单域比较少的传值还好,如果表单域较多,那Action类就会包含大量的属性和getter/setter方法,就会显得臃肿。

 

2. 对象驱动

好象没有比较正式的名称,暂且叫对象驱动吧。

Action类里包含一个对象和getter、setter,此对象的属性与表单的域一一对应:

 

	private User user;
	public User getUser() {
		return user;
	}
	public void setUser(User user) {
		this.user = user;
	}
	public String execute() throws Exception {
             // dosomething();
	}
 表单代码:

 

username: <input type="text" name="user.username" /><br/>
password: <input type="text" name="user.password" /><br/>

 表单域的name由对象名和属性名组成,中间用.连接,Action对象被创建后,通过setter进行赋值。Action result页面则通过${user.username}来访问。

 

3. 模型驱动

模型驱动是通过实现ModelDriven<T>的getModel()接口来传值的。

Action对象里包含一个带有getter\setter的对象,和一个getModel()方法,返回类型即是表单对应的类,返回类型即是创建的对象。

public class Login3Action implements ModelDriven<User> {
	private User user = new User();
	public User getUser() {
		return user;
	}
	public void setUser(User user) {
		this.user = user;
	}
	public User getModel() {
		return user;
	}
        public String execute() {
           // ...
        }
}

表单html代码与属性驱动一样,result返回页取对象的值通过类似于${user.username}来实现。

 

4. 对象驱动与模型驱动的比较

 

在大部分情况下,使用对象驱动或模型驱动,因为能达到dto的复用,且Action类的代码也看起来比较整洁。

对象驱动优点: 无需在Action类里创建对象,支持一个表单含有多个对象的属性。

缺点: 表单域的name变长了

 

模型驱动优点: 使表单看起来整洁

缺点: 不支持一个Action类里多个模型驱动传值。

分享到:
评论
1 楼 lieying1941 2014-03-20  
very good ,thank you !

相关推荐

    struts2-传值方式

    ### Struts2 传值方式详解 在Struts2框架中,实现前后台的数据传递是构建Web应用的基础之一。本文将详细介绍三种常见的Struts2数据传递方式:通过默认的Action属性传递、使用Value Object(VO)传递以及利用...

    struts2配置文件传值中文乱码

    本文将围绕“Struts2配置文件传值中文乱码”这一主题,深入探讨其成因、解决方案以及相关的配置细节,旨在帮助开发者有效解决中文乱码问题,提升用户体验。 ### Struts2框架简介 Struts2是Apache组织下的一个开源...

    struts 2中文汉字传值

    总之,Struts 2 中处理中文汉字传值的关键在于理解和正确使用字符编码,包括设置页面编码、响应编码、URL编码和Action中的解码步骤。确保每个环节都与UTF-8编码兼容,可以避免中文字符的乱码问题。在实际开发中,还...

    ajax请求传值Struts2+jsp

    Struts2是基于MVC(Model-View-Controller)设计模式的Java Web框架,它提供了一种组织应用结构和处理HTTP请求的方式。在Struts2中,Action类作为Controller处理用户的请求,并通过Result返回响应。 ### 二、AJAX...

    Struts2 demo2

    这个"Struts2 demo2"很可能是为了演示和学习Struts2框架的多种功能和配置方式。以下是根据提供的文件名解析出的相关知识点: 1. **SSH2**: SSH代表Spring、Struts2和Hibernate三个开源框架的组合,常用于构建企业级...

    struts2传值

    本文将深入探讨Struts2中两种不同的传值方式,并结合实例解析如何在JSP页面中使用Struts2标签进行数据访问。 首先,传值问题在Struts2中主要涉及到Action类和JSP页面之间的交互。在Action类中,有两种方式可以将值...

    struts2使用域模型传值

    struts2使用域模型传值,如何在struts2中使用与模型传值

    struts2 ,struts2 demo

    这个“struts2,struts2 demo”很显然是一个包含Struts2框架示例代码的压缩包,旨在帮助开发者理解和学习如何在实际项目中运用Struts2。 **1. Struts2简介** Struts2是Apache软件基金会下的一个开源项目,它继承了...

    Struts2Demo2

    Struts2Demo2是一个基于Apache Struts2框架的示例应用,它展示了如何在实际开发中使用Struts2来构建动态Web项目。Struts2是一个强大的MVC(Model-View-Controller)框架,用于简化Java Web应用程序的开发过程。在这...

    struts2入门demo

    首先,Struts2是一个基于MVC(Model-View-Controller)架构的框架,它提供了一种组织应用代码的方式,使得业务逻辑、数据模型和用户界面能够有效地分离。在本入门案例中,你可能会看到以下几个核心组件: 1. **...

    struts2经典demo

    6. **依赖的jar包**:Struts2运行所需的库,包括Struts2的核心库、Servlet和JSP相关的API,以及其他可能的第三方库。 学习这个demo,你需要理解MVC模式在Struts2中的应用,掌握Action和Result的配置,了解...

    struts2 Demo

    这是一个struts2框架的处理流程的demo,里面有struts2基本的配置和模拟登录的例子,以及struts2前台后后台的数据交互方式的解释,代码中有完整的注释帮助理解struts2的基本流程,同时对jstl和struts2的标签也有一定...

    Struts2示例demo

    标签"Struts2demo"表明这是一个关于Struts2的实例,可能涵盖了Action、Interceptor、Result类型、动态方法调用、Tiles插件等关键组件。 在"压缩包子文件的文件名称列表"中,虽然只有一个名字"struts",但通常在...

    Struts2小demo

    在Struts2Demo中,你可能会看到以下关键组件: 1. **struts2-core.jar**:Struts2的核心库,包含Action、Interceptor(拦截器)、Result(结果类型)等核心概念。 2. **struts2-config.xml**:Struts2的配置文件,...

    Struts2登录DEMO

    7. **异常处理**:Struts2提供了一种全局的异常处理机制,通过`&lt;global-exception-mappings&gt;`和`&lt;global-results&gt;`配置,可以统一处理Action执行过程中的异常,并定义异常发生后的跳转页面。 8. **国际化...

    Struts2入门demo

    本入门demo将带你一步步了解Struts2的基础操作。 首先,让我们解析项目中的关键组件: 1. **配置文件**: - `struts.xml`:这是Struts2的核心配置文件,定义了应用的行为。在这个文件中,你需要配置Action类、...

    Struts2 Login Demo

    Struts2 Login Demo 是一个基于Struts2框架的登录演示应用,它展示了如何在实际项目中实现用户登录功能。Struts2是Java EE平台上的一款开源MVC框架,它简化了Web应用开发,提供了强大的动作控制、拦截器机制以及丰富...

    Struts2 注解 Demo

    在`Struts2Demo`项目中,我们可以看到Action类是如何通过注解进行声明的。例如,`@Action`注解用于定义一个方法作为处理HTTP请求的入口,它的`value`属性指定了请求的URL路径。同时,`@Result`注解则用于指定执行完...

Global site tag (gtag.js) - Google Analytics