有关ModelDriven的使用原理,参见http://blog.csdn.net/li_tengfei/archive/2010/12/25/6098145.aspx
public class ContactAction extends ActionSupport implements ModelDriven<Contact> {
private static final long serialVersionUID = -2318419860549968641L;
private TextProvider textProvider;
private UserServices userServices;
private ContactServices contactServices;
private int cid;
private Contact contact = new Contact();
@SkipValidation
public String loadForUpdate() {
Contact acontact = contactServices.read(contact.getId());
BeanUtils.copyProperties(acontact, contact);
return Action.SUCCESS;
}
当进行编辑时,如果去掉loadForUpdate方法中的第二行语句,则进入到更新视图时,除了Id字段有值,其它字段都是控制,需要加上第二句话,将值栈中的对象换成最新的对象。
使用的BeanUtil是spring框架提供的,非apache。
分享到:
相关推荐
当一个Action类实现`ModelDriven`接口时,它需要提供一个`getModel()`方法,该方法返回一个对象,这个对象将作为模型传递给视图层。这使得Action类可以专注于处理业务逻辑,而视图则可以直接访问模型数据,提高了...
在Struts2中,我们可以创建一个Action类,定义对应的方法(如addAction、deleteAction、updateAction和listAction),然后配置struts.xml文件以指定这些方法与URL的映射。对于每个方法,我们可以通过ModelDriven接口...
8. **页面跳转与数据传递**:在Struts2中,Action类的方法返回的结果名对应一个视图,如jsp页面,同时可以通过ActionContext或ModelDriven接口将数据传递到视图。页面之间的跳转和数据传递是Struts2的一大特点,简化...
- **模型驱动**:将表单提交的数据封装到一个JavaBean中,通常需要实现`ModelDriven`接口。 - **集合参数封装**:使用List、Set等集合类型封装多个相同类型的参数。 - **Map参数封装**:使用Map类型封装键值对形式的...
defaultStack是Struts2中的默认拦截器栈,它包含了多个拦截器,例如exception、alias、servletConfig、i18n、prepare、chain、scopedModelDriven、modelDriven等。 六、params拦截器 params拦截器是Struts2中的一个...
1. **实现ModelDriven接口**:在Action类中实现`ModelDriven`接口,并提供`getModel()`方法。 2. **创建JavaBean实例**:在`getModel()`方法中创建JavaBean实例,并返回这个实例。 3. **修改Action类**:移除所有与...
在Struts2中,我们可以利用Struts2的拦截器(Interceptor)和ActionContext来实现这些功能。例如,使用`ModelDriven`或`Params`拦截器来处理请求参数,`Validation`拦截器进行数据验证,以及`Result`类型来转发到...
本教程将深入探讨如何在Struts2中实现CRUD(创建、读取、更新和删除)操作,同时结合MySQL数据库进行数据存储。 1. **Struts2框架基础**: Struts2的核心是Action类,它是处理用户请求的中心。Action类通过...
在Spring和Struts2中,可以通过拦截器或者自定义标签库来实现分页功能。通常,我们需要计算总记录数,设置每页的记录数,提供上一页、下一页等导航功能。在JPA中,可以使用`TypedQuery`的`setFirstResult`和`...
- **控制器类**:在Struts2中,控制器类实际上就是一个普通的POJO(Plain Old Java Object),这简化了开发流程。 - **标签库使用**:要在JSP页面中使用Struts2提供的标签库,需要使用`<%@ taglib uri="/struts-tags...
- **实现接口方式**:实现特定接口以自动处理表单数据。 #### 五、Struts2封装数据操作 - **传统方式**:手动设置Action中的属性。 - **属性封装**:利用Struts2的属性填充机制自动设置属性值。 - **模型驱动封装*...
4. SQL操作完成后,Action将结果封装成Java对象,然后通过Struts2的ModelDriven或ActionSupport接口传递到JSP页面。 5. JSP页面接收到数据后,利用EL(Expression Language)和JSTL(JavaServer Pages Standard Tag ...
9. **错误处理和验证**:学习如何在Struts2中实现表单验证,以及在Flex中处理可能出现的错误和异常。 10. **国际化和本地化**:了解如何在Flex和Struts2中实现应用的国际化,提供多语言支持。 11. **部署与测试**...
Struts2作为Java Web开发中的经典框架之一,提供了强大的控制器功能;而Hibernate则是一个全功能的对象关系映射(ORM)解决方案,它极大地简化了数据库操作的复杂度。将Struts2与Hibernate结合使用,可以构建出高效...
在Struts1.x中,JDBC(Java Database Connectivity)是常用于与数据库交互的技术,它允许开发者通过Java代码来执行SQL语句,实现数据的增删改查操作。下面将详细探讨Struts1.x框架结合JDBC进行数据库操作的知识点。 ...
2. **CRUD操作**:通过Hibernate的Session接口,可以轻松实现创建(Create)、读取(Read)、更新(Update)和删除(Delete)数据库记录。 3. **查询语言HQL**:Hibernate Query Language (HQL) 是一种面向对象的...
在实现增删改查功能时,我们会定义相应的Action,如AddAction、DeleteAction、UpdateAction和QueryAction。这些Action会处理HTTP请求,并调用业务逻辑层的服务方法。 Spring框架主要负责管理对象(Bean)的生命周期...
Struts和Hibernate是Java开发领域中的两个重要框架,它们在构建Web应用程序,特别是BBS(Bulletin Board System,论坛系统)时发挥着关键作用。Struts主要用于控制应用程序的流程,而Hibernate则专注于对象关系映射...
在这个"Struts2+Hibernate实现CRUD操作网页"项目中,我们能看到开发者如何结合这两个框架来创建一个能够进行创建(Create)、读取(Retrieve)、更新(Update)和删除(Delete)操作的Web应用程序。以下是这个项目中的关键...
Struts提供了Action类,通过ActionForm或ModelDriven接口来接收和处理用户提交的数据,最后返回一个结果视图。 其次,Spring作为核心容器,负责管理对象的生命周期和依赖注入。在SSH整合中,Spring主要扮演两个角色...