我正在开发一个Spring MVC应用程序,我在控制器类中遇到以下问题,该类在类级别使用 @RequestMapping(" / profilo /")进行注释
所以我有这样的事情:
@Controller
@RequestMapping("/profilo/")
public class ProfiloController extends BaseController {
..................................................................
..................................................................
SOME CONTROLLER METHOD THAT WORK CORRECTLY
..................................................................
..................................................................
@RequestMapping(value = "utenze/{username}/confermaEmail/{email:.+}", method = RequestMethod.GET)
public String confermaModificaEmail(@PathVariable String username, @PathVariable String email, Model model) {
logger.debug("INTO confermaModificaEmail(), indirizzo e-mail: " + email);
.......................................................................
.......................................................................
.......................................................................
}
}
因此,正如您在前面的代码片段中看到的那样,我有 ProfiloController 类,用 @RequestMapping(&#34; / profilo /&#34;)<注释< / strong>所以这意味着此类控制器方法处理的所有HTTP请求都必须以URL中的 / profilo / 开头。
除了必须处理URL的 confermaModificaEmail()方法之外,此类的所有方法都是如此:
http://localhost:8080/my-project/utenze/mario.rossi/confermaEmail/a.nobili@siatec.net
不要与 / profilo / 一起开始。
因此,我可以指定对于控制器的这种特定方法, @RequestMapping(&#34; / profilo /&#34;)控制器级别映射无效,必须不予考虑?
答案 0 :(得分:2)
这是不可能的。
Spring保持了一个正确的@Controller结构,该结构表示所有与ControllerName相关的端点(即你的案例中的.Portfolio)都应该保存在这个类中。
理想情况下,任何与功能无关的其他网址都应保留为不同Controller类的一部分。
如果您仍想保留在同一个控制器中,请尝试通过将http调用从“/ portfolio /&lt;”示例“&gt;”重定向到所需的URL来调用endPoint url confermaModificaEmail()。但这不是推荐的强>