我创建了一个jsp视图(例如名为“foo”),它有2< c:import ...>标记在其中加载2个部分视图(例如,称为“subFoo1”和“subFoo2”)。 它的方式是,我在控制器中有3个方法,每个视图一个 fooController - foo, sub1Controller> subFoo1, sub2Controller> subFoo2
当我点击将我带到返回ModelAndView(foo.jsp)的fooController的按钮时,其他2个部分视图由< c:import ...>标签和工作100%罚款。
问题在于,当我从另一个控制器调用fooController时(所以不是来自浏览器的请求,而是来自另一个控制器,例如,已经向db保存了一些内容),那么foo.jsp加载正常,但是subFoo1和subFoo2根本不加载。
调试显示正确的参数传递给fooController和foo.jsp,并且从不调用sub1Controller和sub2Controller。
这让我相信< c:import ...>当foo.jsp通过从另一个控制器调用其控制器而不是来自浏览器的请求来呈现时,标签不会调用它们的URL。
正如我之前所说,当从浏览器向fooController发出请求时,它会100%工作,但是当我从另一个控制器调用fooController时,它不会工作。
我已经四处寻找,但似乎找不到像这样的东西。据我了解,< c:import ...>从URL中吞下HTML响应并将其嵌入到它所在的页面上。我无法理解为什么foo.jsp的请求会有所不同,它应该对< c:import ...>就我而言的标签(我说错了吗?)