@RequestMapping(value = {"/new", "/modifyNew"} ) public ModelAndView public getCreate()
我用这种方式定义了我的控制器方法来处理它们
/new
和/modifyNew
在我的方法中有一种方法可以找出请求来自哪个映射..?是new
还是modifyNew
?这是一种很好的编程方式吗?
答案 0 :(得分:0)
您可以按照here所述读取请求网址,但我不建议这样做。访问实际url的需要足以分割到每个端点的两个独立控制器并将公共逻辑提取到方法。
这是一种很好的编程方式吗?
在我看来,这不是因为你违反了单一责任原则" (wiki)。这意味着您的函数同时执行多个操作,因为它分别为两个端点提供了实现。如果控制器提供的行为对两个端点都相同,那就没问题了。如果您对代码质量感兴趣,我建议您阅读一本书#34; Clean Code"罗伯特C.马丁。玩得开心!
答案 1 :(得分:0)
您可以使用HttpServletRequest方法获取请求的网址:
@RequestMapping(value = {"/new", "/modifyNew"} ) public ModelAndView public getCreate(HttpServletRequest request){
String url = request.getRequestURI() //Gets the requested URI.
}
您可以获取请求的网址,并检查其是/new
还是/modifyNew
。
此外,您可以查看上面的HttpServletRequest
文档,并在需要时使用任何其他方法。