如何修正Spring MVC RequestMapping命令?
我有一个现有的Spring MVC服务,运行以下RequestMapping。
@RequestMapping(value = "{user}/**", method = RequestMethod.GET)
我现在需要使用以下RequestMapping将新方法添加到同一个控制器。
@RequestMapping(value = "api/{user}/**", method = RequestMethod.GET)
当我测试新的URL时,Spring总是选择第一个函数,以便第二个函数不可访问。
无论如何,我可以让Spring使用我的新“api”方法吗? 我能想到的唯一选择是在我的web.xml中创建一个新的Java servlet,但我想做一些更简单的事情。 我确实尝试使用@Controller
和@Controller("api")
制作两个不同的控制器,但这并没有解决问题。
假设您的user
参数是String
,Spring假设您已经为用户api
调用了。
有几种方法可以解决这个问题。 第一个(也是最好的)是使您的请求映射更加狭窄:完全指定映射,而不是最后依赖“ **
”。
第二种方法是在映射中使用正则表达式禁止“api”用户。 像下面这样的东西应该工作:
@RequestMapping(value = "{user:[^a][^p][^i]}/**", method = RequestMethod.GET)
- 如何在没有ConcurrentModificationException的情况下对Collection 进行交互并修改其项目?
- java.lang.IllegalStateException:驱动程序可执行文件的路径必须由webdriver.chrome.driver系统属性设置
- CryptoJS AES加密和Java AES解密
- Java Regex – Ilegal Repetition字符
- 一次使用固定数量的结果流式传输MySql ResultSet
- 如何在java中获取JSON对象的所有节点和子节点?
- AES加密IV
- 持久(基于磁盘)R树(或R *树)
- 当我使用A JPA Query的getResultList()时,结果是分离还是管理?