【问题标题】:Handling one jsp-page with 2 different Spring controllers使用 2 个不同的 Spring 控制器处理一个 jsp 页面
【发布时间】:2011-06-30 22:29:09
【问题描述】:

有谁知道在 Spring 中是否可以将单个 jsp 页面映射到两个不同的控制器?

例如,我有一个带有多个功能提交按钮的页面(带有几个表单),我希望它们由不同的控制器处理,所以说 2 个不同的 java 文件,而不是一个会将我重定向到另一个 2控制器。 我已经看到了这个:similar question on stackoverflow,但真的不明白这应该如何工作:S

感谢您的宝贵时间!

【问题讨论】:

  • 嗨尼古尔!您的问题不清楚,我无法理解您的 Similar Question 与您的问题有何关联。将一个 JSP 映射到两个不同的控制器不同于将一个 URL 映射到两个不同的控制器。
  • 抱歉有歧义的问题!我也有点沮丧。也许这就是原因。我有一个获取数据库信息的jsp 页面。现在我需要用 1 个带有文本字段的文本表单来扩展它以进行搜索。但这应该由另一个控制器处理。如何才能做到这一点?感谢您的宝贵时间!
  • 好的,我想我明白了。如果它适合你,请查看我的答案。

标签: spring controllers


【解决方案1】:

假设您的 JSP 名称是 my_page.jsp。您可以将它与任意数量的控制器一起使用,只需确保通过 ModelAndView 对象返回此 JSP 的地址:

return new ModelAndView("/my_page.jsp");

另外,不要忘记您可能在 JSP 中使用了一些对象,这些对象必须通过所有控制器(使用此 JSP),否则您可能会从 JSP 获得NullPointerExceptions:

return new ModelAndView("/my_page.jsp")
.addObject("object_1_required_by_jsp", object1RequiredByJSP)
.addObject("object_2_required_by_jsp", object2RequiredByJSP);

希望对你有帮助。

【讨论】:

  • 并非如此。我需要使用这些控制器处理页面,而不是将结果从它们发送到页面。 (
  • 我也有同样的问题。你找到解决方案了吗?
  • @svlada,我真的不能说我找到了解决方案。但我找到了解决办法。我所做的是创建了一个中间页面,当我按下按钮时我被重定向到该页面。那一页是空的。我用它自己的控制器(用handleRequest)处理它,然后从这个控制器我将ModelAndView返回到主页,在我的情况下应该是唯一的。所以,基本上我有两个控制器,但是我现在有 2 页。但它可以按我的需要工作。我希望这对您有所帮助。
  • 感谢您的回答我最终在 misc 控制器中使用了一种方法,该方法根据请求参数分派到不同的控制器(注入)。
猜你喜欢
  • 1970-01-01
  • 2013-04-20
  • 1970-01-01
  • 2022-12-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-03
相关资源
最近更新 更多