发帖次数较少,大牛轻拍。。
------------------------------------------
由于最近在使用struts2,一些应用难免犯浑。进入正题。
大概流程 action(A)----------->产生对象USRR------>A.jsp----------->B.action----------->B.jsp
由于B.jsp还需使用user对象。故产生了想在A.JSP传递这个对象到b.action.
主流做法:
1.放在session
2.传递某些参数,再去数据库查询一遍这个对象。
3.页面隐藏USER对象中的各个属性。
为什么不能在A.jsp页面直接传递对象到action呢?
-----------------
操刀入手:
----------
尝试1:
在A.jsp中写入
request.setAttribute("user");
在B.action中获取request.setAttribute("user");
结果一直是null.
百思不得其解,一直以为是struts2中封装request的某些原因,或者是拦截器在作祟。。
后来猛然发现:是因为不是同一个request的关系,和struts2无关。。。
因为这个request 是上次的请求对象,新的请求会重新产生request.
总结一下:
在JSP 页面上使用settAttribute是没有用的。
即:客户端发出请求,服务器端相应完毕后,request即失效了。
剩下的讲究基本是response.sendRedirect 或者是 forward:
如果用request,要注意request的范围仅限于同一个request对象;
如果使用了form的"action"或者response.sendRedirect("xxx.jsp")等调转,
则不再是同一个request对象,即用request.getAttribute("name")将取不到值。
换成request.getRequestDispatcher("xxx.jsp").forward(request,response);
才能共享request中数据.
如果采用getParameter的形式,抱歉,只能支持string.
jsp页面传递对象是不是就无解呢?(别告诉我JSON什么的封装对象的属性值)。
分享到:
相关推荐
在本场景中,我们将探讨如何使用AJAX来传递JSON数组,并在Struts2的Action中接收和处理这些数据。 首先,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它易于人阅读和编写,同时也易于机器解析...
在Struts2中,OGNL用于传递Action与视图之间的数据,以及在拦截器中进行表达式计算。 4. **struts2-convention-plugin.jar**:这是Struts2的约定优于配置插件,它简化了Action类和结果配置,使得开发者可以按照一定...
1. **封装OGNL操作,实现值的传递**:Struts2通过对OGNL表达式的封装,实现从客户端传入的参数到Java对象之间的值传递。这一过程包括但不限于对各种复杂类型的处理,如数组、列表、映射等。 2. **类型转换**:为了...
总的来说,Struts2提供了多种方式来向结果传递参数,这使得它在处理复杂的业务逻辑和页面跳转时具有高度的可定制性。根据项目的具体需求,选择合适的方法可以提高代码的可维护性和效率。在实践中,结合使用不同的...
"jQuery+json异步实现JSP和struts2之间的数据传递"是一个典型的应用场景,它结合了前端JavaScript库jQuery与后端MVC框架Struts2,通过JSON这种轻量级的数据交换格式进行高效的数据交互。下面我们将详细探讨这一主题...
至此,你已经掌握了如何使用Struts2的JSON插件进行数据传递的基本步骤。然而,Struts2 JSON插件还提供了许多高级特性,如自定义JSON序列化策略、处理复杂类型、支持国际化等。在实际开发中,你可以根据项目需求灵活...
本文将深入探讨如何使用jQuery的AJAX方法发送JSON对象数组到Struts2的Action,并在后端进行处理。 首先,我们了解JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于...
本入门篇主要涵盖了Struts2的基础配置、通配符使用、参数注入以及内置对象的获取,非常适合初学者进行学习。 1. **基础配置**:在Struts2中,基础配置主要通过`struts.xml`文件完成。这个文件定义了Action(动作)...
本示例主要讲解了如何在Struts2中传递参数以及使用ModelDriven模式。首先,我们来逐一解析涉及的知识点。 1. **Struts2框架**:Struts2是Apache软件基金会的一个开源项目,它是基于MVC设计模式的Web应用框架,旨在...
- OGNL是Struts2中的表达式语言,用于在Action和视图之间传递数据。它可以访问对象的属性,执行方法,甚至进行复杂的运算和控制结构。 7. **插件(Plugins)** - Struts2支持多种插件来扩展功能,如Struts2-dojo-...
- **自动填充**:Struts2 自动从 request 中获取数据并填充到 Action 对象中。 - **原理**:通过拦截器实现,拦截器会查找与 Action 类中的 setter 方法相匹配的请求参数,并调用这些方法填充数据。 **3.3 数据传递...
OGNL是Struts2中的默认表达式语言,用于在Action和视图之间传递数据。例如,`${user.name}`可以获取User对象的name属性。 **7. Struts2的注解** 除了XML配置外,Struts2还支持使用注解进行配置,使得代码更加简洁。...
2. `xwork-core.jar`:XWork是Struts2的基础,提供了许多底层的功能,如类型转换、对象图导航、事件处理等。 3. `ognl.jar`:Object-Graph Navigation Language (OGNL)是Struts2中使用的表达式语言,用于在视图层和...
4. **OGNL (Object-Graph Navigation Language)**: OGNL是Struts2中的表达式语言,用于在Action对象和JSP页面之间传递数据。它允许动态访问和修改对象的属性,以及执行复杂的逻辑操作。 5. **Token机制**: - **...
4. **OGNL(Object-Graph Navigation Language)**:OGNL是Struts2中的默认表达式语言,用于在视图和模型之间传递数据。它允许开发者在JSP或其他视图层中直接访问Action对象的属性,或者设置模型数据。例如,`${user...
- 这个过滤器会捕获所有进入Web应用的HTTP请求,并将它们传递给Struts2框架处理。 - 配置过程中需要注意过滤器的初始化参数,这些参数对于框架的正确运行至关重要。 - **使用struts.xml实现页面导航**: - `...
### Struts2 (对象.属性)注入解析 #### 一、引言 随着技术的发展,Struts2框架作为Struts1的升级版本,在处理表单数据方面进行了显著改进。Struts1时代,开发者通常需要创建FormBean来封装前端传来的表单数据,这...
6. **OGNL(Object-Graph Navigation Language)**:Struts2使用OGNL作为默认的表达式语言,用于在Action与视图之间传递数据。开发者可以通过OGNL表达式访问Action属性,以及在JSP中动态地显示和修改数据。 7. **...
OGNL是Struts2中的默认表达式语言,用于在Action与视图之间传递数据。它允许在Action、JSP、甚至配置文件中灵活地访问和修改对象属性。 7. **Struts2的JAR包**: - `struts2-core.jar`:包含框架的核心组件,如...
8. **Struts2与Spring集成**:通过Struts2的Spring插件,可以实现Action类的依赖注入,便于管理对象和事务。 9. **表单验证**:Struts2提供了强大的表单验证机制,可以通过XML或注解方式定义验证规则,进行客户端和...