1、不实现modelDriven接口,那么params拦截器会通过ognl去取栈顶的对象,然后进行封装。
2、实现了modelDriven接口.
public String intercept(ActionInvocation invocation) throws Exception {
Object action = invocation.getAction();
if (action instanceof ModelDriven) {
ModelDriven modelDriven = (ModelDriven) action;
ValueStack stack = invocation.getStack();
//取出model
Object model = modelDriven.getModel();
if (model != null) {
//压入栈顶
stack.push(model);
}
if (refreshModelBeforeResult) {
invocation.addPreResultListener(new RefreshModelBeforeResult(modelDriven, model));
}
}
return invocation.invoke();
}
从源码可以看出实现了modelDriven接口,那么直接压入栈顶.params拦截去去栈顶获取对象,封装到model中。
分享到:
相关推荐
这个"struts2数据封装源码"很可能是为了演示如何在Struts2框架下处理用户输入数据并进行封装的过程。在Struts2中,数据封装是通过Action类和模型对象(通常称为POJOs,Plain Old Java Objects)来实现的,这使得业务...
在这个“Struts2五种数据封装Demo”中,我们将深入探讨Struts2的数据封装机制,以及如何通过配置文件来操作Servlet的三大核心对象——Request、Session和Application。同时,我们还将了解如何从表单中获取数据并进行...
- **Struts2**: 使用OGNL进行数据绑定,支持更高级的数据绑定操作。 #### 验证机制 - **Struts1**: 支持ActionForm的内置验证机制,并且可以通过Commons Validator进行扩展。 - **Struts2**: 提供了更强大的验证...
Struts2是一个强大的Java web应用程序开发框架,它基于Model-View-Controller(MVC)设计模式,用于构建可维护性高、结构...在实际开发过程中,还需要关注安全问题,如Struts2的安全漏洞,确保应用的稳定性和安全性。
在处理批量数据提交时,Struts2提供了一种高效的方法来管理并存储大量数据到数据库。本篇文章将深入探讨如何利用Struts2实现批量提交数据的功能。 ### 一、批量提交的概念 批量提交是指一次性处理多个数据记录,而...
在学习Struts2的过程中,你将会接触到许多重要的知识点,这些知识点对于初学者来说尤其有价值。Struts2是一个强大的MVC(Model-View-Controller)框架,它简化了Java Web应用程序的开发,提供了丰富的功能和良好的可...
在“Web开发学习8Struts2基类封装”这一主题中,我们将深入探讨Struts2框架的核心概念、基类封装以及如何通过源码分析来提升开发效率。 首先,Struts2框架的核心在于Action类,它是处理用户请求的入口点。在传统的...
1. **Action和Form Bean**:在Struts2中,Action类代表了业务逻辑,而Form Bean(通常称为ActionForm)则封装了来自页面表单的用户输入。验证过程通常发生在Action执行之前,对Form Bean的属性进行检查。 2. **...
Struts2是一个流行的Java web开发框架,它提供了一种强大的数据输入验证机制,确保用户提交的数据符合预期格式和约束。本教程将深入讲解Struts2中的数据输入验证,包括两种主要验证方式:客户端验证和服务端验证。...
这两个框架都是Java Web开发中的关键组件,Struts2负责控制层逻辑,Spring则提供了全面的依赖注入(DI)和面向切面编程(AOP)功能,以及对数据访问层的支持。 1. **Struts2框架**:Struts2是一个开源的MVC框架,...
4. **Value Stack**:Struts2使用Value Stack来存储Action的属性,使得视图可以直接访问这些属性,简化了数据传递过程。 5. **Ognl(Object-Graph Navigation Language)**:Struts2内部使用OGNL作为表达式语言,...
- **插件(Plugins)**:Struts2提供了一些预封装的功能插件,如JSON、Tiles、Freemarker等,方便开发者快速构建功能。 总结来说,Java Struts2框架通过其强大的MVC架构和丰富的功能组件,使得实现CRUD操作变得简洁...
而Struts2框架中,各个jar包的作用也是学习过程中的重点内容,比如struts2-core.jar是Struts2的核心类库,xwork-core.jar是WebWork的核心库,ognl.jar用于支持OGNL表达式语言,而javassist.jar用于操作Java字节码。...
- **返回JSON数据**:完成业务处理后,Struts2通过JSON插件将结果集封装成JSON响应,并设置相应HTTP头信息,如Content-Type为'application/json'。 - **jQuery处理响应**:前端接收到响应后,jQuery自动将JSON数据...
总的来说,Struts2框架提供了一个结构化的方法来组织和管理Web应用,简化了开发过程,通过配置文件和拦截器机制实现了高度的灵活性和可扩展性。然而,随着Spring MVC和其他轻量级框架的发展,Struts2在现代Web开发中...
2. **异常处理与错误封装**:如果类型转换过程中遇到问题,如无法正确转换数据类型,会抛出异常。这些异常会被捕获并封装到`fieldError`对象中,存储在`ActionContext`中,以便后续的拦截器处理。 3. **反射调用...
2. **后端**:Struts2 Action接收到文件数据,可能通过Spring的Service层进一步处理。使用Hibernate将文件信息保存到数据库,同时处理文件的实际存储。 3. **进度反馈**:后端在处理文件上传的过程中,通过Ajax回调...
1. 创建(Create):当用户提交新数据时,Struts2会调用一个特定的Action类方法,该方法负责将表单数据转换为ActionForm对象,然后通过JDBC与数据库交互,将新数据插入到数据库中。 2. 读取(Read):为了显示数据...
例如,当用户需要获取某个列表数据时,前端可以通过Ajax向服务器发送请求,Struts2 Action接收到请求后,执行相应的查询操作,然后将结果集封装成JSON对象,通过Ajax响应返回给前端。前端接收到数据后,使用jQuery...
- **ActionForm**:虽然Struts2不再强制要求使用ActionForm,但它依然被广泛用于封装用户的请求参数。 - **Interceptor**:拦截器是Struts2的重要组成部分,用于处理诸如权限验证、日志记录等横切关注点。 - **...