多个Spring控制器应该直接指向同一个视图文件吗?

时间:2018-10-17 03:52:31

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

假设在控制器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 个答案:

答案 0 :(得分:3)

是的,根据您的逻辑,您可以让Spring Controller指向同一个视图文件,它可以减少冗余,我已经看到很多站点都这样做,为什么当事情可以处理一个文件时添加一个额外的文件,不是不好的做法,这正是您所需要的。

答案 1 :(得分:0)

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

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

控制器无论如何都不应具有太多逻辑,而应仅具有使用从业务/服务层接收的数据来填充视图的逻辑,并且由于相同的视图,两个映射可能都必须填充相同的对象。因此,这可能是更好的建模方法。

希望它具有建设性!