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类里多个模型驱动传值。
相关推荐
### Struts2 传值方式详解 在Struts2框架中,实现前后台的数据传递是构建Web应用的基础之一。本文将详细介绍三种常见的Struts2数据传递方式:通过默认的Action属性传递、使用Value Object(VO)传递以及利用...
本文将围绕“Struts2配置文件传值中文乱码”这一主题,深入探讨其成因、解决方案以及相关的配置细节,旨在帮助开发者有效解决中文乱码问题,提升用户体验。 ### Struts2框架简介 Struts2是Apache组织下的一个开源...
总之,Struts 2 中处理中文汉字传值的关键在于理解和正确使用字符编码,包括设置页面编码、响应编码、URL编码和Action中的解码步骤。确保每个环节都与UTF-8编码兼容,可以避免中文字符的乱码问题。在实际开发中,还...
Struts2是基于MVC(Model-View-Controller)设计模式的Java Web框架,它提供了一种组织应用结构和处理HTTP请求的方式。在Struts2中,Action类作为Controller处理用户的请求,并通过Result返回响应。 ### 二、AJAX...
这个"Struts2 demo2"很可能是为了演示和学习Struts2框架的多种功能和配置方式。以下是根据提供的文件名解析出的相关知识点: 1. **SSH2**: SSH代表Spring、Struts2和Hibernate三个开源框架的组合,常用于构建企业级...
本文将深入探讨Struts2中两种不同的传值方式,并结合实例解析如何在JSP页面中使用Struts2标签进行数据访问。 首先,传值问题在Struts2中主要涉及到Action类和JSP页面之间的交互。在Action类中,有两种方式可以将值...
struts2使用域模型传值,如何在struts2中使用与模型传值
这个“struts2,struts2 demo”很显然是一个包含Struts2框架示例代码的压缩包,旨在帮助开发者理解和学习如何在实际项目中运用Struts2。 **1. Struts2简介** Struts2是Apache软件基金会下的一个开源项目,它继承了...
Struts2Demo2是一个基于Apache Struts2框架的示例应用,它展示了如何在实际开发中使用Struts2来构建动态Web项目。Struts2是一个强大的MVC(Model-View-Controller)框架,用于简化Java Web应用程序的开发过程。在这...
首先,Struts2是一个基于MVC(Model-View-Controller)架构的框架,它提供了一种组织应用代码的方式,使得业务逻辑、数据模型和用户界面能够有效地分离。在本入门案例中,你可能会看到以下几个核心组件: 1. **...
6. **依赖的jar包**:Struts2运行所需的库,包括Struts2的核心库、Servlet和JSP相关的API,以及其他可能的第三方库。 学习这个demo,你需要理解MVC模式在Struts2中的应用,掌握Action和Result的配置,了解...
这是一个struts2框架的处理流程的demo,里面有struts2基本的配置和模拟登录的例子,以及struts2前台后后台的数据交互方式的解释,代码中有完整的注释帮助理解struts2的基本流程,同时对jstl和struts2的标签也有一定...
标签"Struts2demo"表明这是一个关于Struts2的实例,可能涵盖了Action、Interceptor、Result类型、动态方法调用、Tiles插件等关键组件。 在"压缩包子文件的文件名称列表"中,虽然只有一个名字"struts",但通常在...
在Struts2Demo中,你可能会看到以下关键组件: 1. **struts2-core.jar**:Struts2的核心库,包含Action、Interceptor(拦截器)、Result(结果类型)等核心概念。 2. **struts2-config.xml**:Struts2的配置文件,...
7. **异常处理**:Struts2提供了一种全局的异常处理机制,通过`<global-exception-mappings>`和`<global-results>`配置,可以统一处理Action执行过程中的异常,并定义异常发生后的跳转页面。 8. **国际化...
本入门demo将带你一步步了解Struts2的基础操作。 首先,让我们解析项目中的关键组件: 1. **配置文件**: - `struts.xml`:这是Struts2的核心配置文件,定义了应用的行为。在这个文件中,你需要配置Action类、...
Struts2 Login Demo 是一个基于Struts2框架的登录演示应用,它展示了如何在实际项目中实现用户登录功能。Struts2是Java EE平台上的一款开源MVC框架,它简化了Web应用开发,提供了强大的动作控制、拦截器机制以及丰富...
在`Struts2Demo`项目中,我们可以看到Action类是如何通过注解进行声明的。例如,`@Action`注解用于定义一个方法作为处理HTTP请求的入口,它的`value`属性指定了请求的URL路径。同时,`@Result`注解则用于指定执行完...