Struts1 和 Struts2 可以在一个应用程序中具有相同的 url 扩展名 (*.do) 吗?

Can Struts1 and Struts2 can have same url extension (*.do) in one application?

我们可以在一个应用程序中同时拥有 Struts1 和 2。 我在 struts1 中定义了 100 多个 URL,我正在将那些 URL 迁移到 Struts2。

假设我的 URL 是这样的,

1. something1.do
2. something2.do
....
100. something100.do

从上面的 URL 我想在 Struts2 中配置一些 URL。

因此我的问题是我们可以配置一些 URL 的扩展名 struts1 中的 .do 和 URL 中的一些扩展名 Struts2.

是的,可以,但是如果您必须维护现有的 URL,这会带来复杂性。

如果您无法更改 Struts 1 URL 的模式,并且无法使用唯一的命名空间作为前缀,则您需要提供 Struts 2从文件系统中获取静态资源,而不是让 S2 处理它。如果您 可以 修改 S1 URLs,那么通过更改 S1 servlet 映射就很简单了。

另一种选择是使用过滤器或 S2 拦截器将已知的 S1 映射映射到 S1 应用程序中的不同名称空间。如果您想显示旧的 S1 URL,这需要一些小的 web.xml 修改 URL。

使用不同的扩展程序会更简洁、更容易。在同一个应用程序中混合使用这两个框架没有根本问题。当您从 S1 页面链接到 S2 操作时,您需要手动构建 URL,因为标签库彼此不知道。