【问题标题】:Should multiple Spring controllers direct to same view file?多个 Spring 控制器是否应该指向同一个视图文件?
【发布时间】:2018-10-17 03:52:31
【问题描述】:

假设在控制器 A 中,我有

@GetMapping("/path/1")
public String getIndex() {
//it's own unique logic
...

return "path/to/file";
}

在控制器 B 中,我有

@GetMapping("/path/2")
public String getIndex() {
//It's own unique logic
...

return "path/to/file";
}

将来自不同控制器的两个不同映射直接映射到同一个 html(或任何演示文稿)文件是一种好习惯吗?一个映射是否应该控制到特定视图的所有流量?还是应该让其中一个控制器直接映射到其他控制器?

【问题讨论】:

  • 我认为将 2 个控制器映射到同一个文件没有任何问题。
  • 我也没有看到任何问题,这完全取决于您的逻辑,您是否需要为两个不同的控制器映射使用不同的视图,或者对于任何映射您只需要一个视图。

标签: java spring spring-mvc model-view-controller


【解决方案1】:

是的,根据您的逻辑,您可以让 Spring 控制器指向同一个视图文件,这可以减少冗余,我已经看到很多网站都这样做了,为什么在可以使用一个文件时添加一个额外的文件,这不是不好的做法,这正是您需要的。

【讨论】:

    【解决方案2】:

    正如其他人所指出的,这本身不是问题。但是要提供不同的视图,您可能想知道为什么需要两个不同的映射才能到达同一个视图。他们能解决相同的域问题吗?

    您可能有一个接受参数的端点,并让服务层根据提供的参数执行非常独特的逻辑(它甚至可以是 1 和 2,作为路径参数传递)

    无论如何,控制器不应该有太多的逻辑,它应该只具有从业务/服务层接收到的数据填充视图的逻辑,并且可能两个映射都必须填充相同的对象,因为它是同一个视图。所以这可能是一种更好的建模方式。

    希望它是建设性的!

    【讨论】:

      猜你喜欢
      • 2013-08-11
      • 2015-01-15
      • 1970-01-01
      • 2012-07-25
      • 2013-06-16
      • 1970-01-01
      • 2014-01-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多