java - 将 Struts-Tiles 迁移到 Spring+tiles 3

标签 java spring-mvc migration struts-1 apache-tiles

我正在从 Strut1 + Tiles 项目迁移到 SpringMVC 和 Apache Tiles 3。我对Struts1+Tiles只了解一点点,它太旧了,我陷入了Struts-tiles中的Controller和ComponentContext。根据apache网站的文档,它被ViewPreparer和AttributeContext替换,但我不知道以下行的含义:
ComponentContext compContext=(ComponentContext)pageContext.getAttribute(ComponentConstants.COMPONENT_CONTEXT,PageContext.REQUEST_SCOPE);
什么是ComponentConstants.COMPONENT_CONTEXT ?以及如何更改ComponentContextAttributeContext

请帮忙,谢谢。

最佳答案

Bidi,有两种获取 AttributeContext 的方法:

第一个,如 mck 所说:通过请求范围的“org.apache.tiles.AttributeContext.STACK”键。但是,该值是一个 STACK,其中包含 2 个 AttributeContext 类型的元素。我们需要的是第一个元素。恕我直言,这种方式是有限制的,因为由于数据结构是一个堆栈,获取也意味着根据 FIFO 规则从堆栈中删除,因此您只能使用该对象一次。

我在项目中使用的是第二种方式。因为ViewPreparer的execute()方法已经有一个AttributeContext类型的参数,并且每次渲染页面时都会调用这个方法,所以你可以在重写时使用这个对象来做你想做的事情(或者放在request中)方法。 AttributeContext 只是键/值对的集合。通常,人们使用它来访问模板中的一些属性值,因此获取这些值并将它们放入请求可以节省开销。您还可以创建继承类的一些静态属性并为其设置值。

关于java - 将 Struts-Tiles 迁移到 Spring+tiles 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27845286/

相关文章:

java - 我的php脚本已连接,但android studio不会使用它。没有可见的错误输出

java - 如何打印我的 Java 对象而不得到 "SomeType@2f92e0f4"?

mysql - 在 ROR 迁移期间将列类型从 Date 更改为 DateTime

php - 数据库同步或迁移工具

c# - VC++ 到 C# 迁移指南/方法/问题

java - 简单的关键监听器

java - 如何打开程序并检测程序何时关闭

java - Spring MVC 简单 Controller 示例

java - Spring MVC Controller 在登录后重定向到某个 URL

java - 在 JSP 页面中,您可以使用反射来显示模型对象的所有特定属性吗?