gpt4 book ai didi

java - Spring MVC 和 "magic string"返回类型

转载 作者:太空宇宙 更新时间:2023-11-04 08:10:20 25 4
gpt4 key购买 nike

在 Controller 请求方法的末尾,我们通常会执行以下操作:

modelAndView.setViewName("welcomePage");
return modelAndView;

return "welcomePage";

尽管这种方式简单高效,但我是唯一一个发现这些“魔术字符串”错误的人吗?

同一个“welcomePage”字符串可以在同一个类或其他类中使用多次,从而打破了“不要重复自己”的原则。而且,如果我碰巧重命名了“welcomePage.jsp”,我就必须全部替换项目中出现的所有“welcomePage”。

首先想到的解决方案是将这些(可能是共享的)字符串转换为(可能是集中的)常量或枚举。但我不确定这是否适合 Spring MVC。

您对这种“神奇的字符串”有何看法? Spring MVC 是否允许以更简洁的方式返回 View ?如果没有,您会推荐什么解决方案?

最佳答案

1) 当我意识到我对代码中字符串的厌恶是基于我作为本科生从那些认为 EMACS 是所有 IDE 顶峰的人那里死记硬背学到的东西时,我就克服了这个问题。 AppConstants.ViewNames.WELCOME_PAGE 真的比“welcomePage”更好吗?其意图明显且易于理解。大多数时候,当我看到人们坚持每个多次使用的字符串都是常量时,常量名称与字符串名称非常接近,因此代码有意义,如果您确实更改了,那么除非您也更改常量名称,否则它没有任何意义。/rantoff 在现代 IDE 中更改它需要 15 秒。

2) View 解析器可以使用 WEB-INF/jsp/welcomePage.jsp(或您设置的任何内容)自动呈现/welcomePage.htm。没有理由专门通过名称指定 View ,除非您想要呈现名称与 URL 路径中请求的 html 文档不匹配的 JSP。

3) 构建页面以便利用上面的#2,并且不需要指定显式 View 名称。

关于java - Spring MVC 和 "magic string"返回类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11335387/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com