1

我创建了一个 jsp 视图(例如称为“foo”),其中包含 2 个 < c:import ...> 标记以加载 2 个局部视图(例如称为“subFoo1”和“subFoo2”)。它的完成方式是,我在控制器中有 3 个方法,每个视图一个 fooController - foo, sub1Controller > subFoo1, sub2Controller > subFoo2

当我单击将我带到返回 ModelAndView (foo.jsp) 的 fooController 的按钮时,其他 2 个部分视图由 < c:import ...> 标签加载并且可以 100% 正常工作。

问题是,当我从另一个控制器调用 fooController 时(所以不是来自浏览器的请求,而是来自另一个控制器,例如,将某些内容保存到数据库),然后 foo.jsp 加载正常,但 subFoo1 和 subFoo2 可以根本不加载。

调试显示正确的参数被传递给 fooController 和 foo.jsp,并且 sub1Controller 和 sub2Controller 都没有被调用。

这让我相信,当 foo.jsp 通过从另一个控制器调用其控制器而不是来自浏览器的请求来呈现时,< c:import ... > 标签没有调用它们的 URL。

正如我之前所说,当从浏览器向 fooController 发出请求时,它可以 100% 工作,但当我从另一个控制器调用 fooController 时则不行。

我四处搜寻,但似乎找不到像这样的东西。据我了解, < c:import ... > 吞下来自 URL 的 HTML 响应并将其嵌入到它所在的页面上。我不明白为什么请求 foo.jsp 会有所不同,就我而言,它应该对 < c:import ...> 标签没有影响(我说错了吗?)

4

0 回答 0