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



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

假设我的URL是这样的,

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

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

因此,我的问题是,我们能否在struts1中配置一组扩展名为(.do)的URL,在Struts2中配置一套URL。

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

如果您无法更改Struts1 URL的模式,也无法在其中任何一个URL前面加上唯一的命名空间,那么您将需要从文件系统中为Struts2静态资源提供服务,而不是让S2处理它。如果可以修改S1 URL,则可以直接更改S1 servlet映射。

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

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

最新更新