Java 具有相同模式url的多个路由
实际上,我正在创建一个简单的应用程序,我需要在多种情况下具有相同的路由模式:Java 具有相同模式url的多个路由,java,spring,Java,Spring,实际上,我正在创建一个简单的应用程序,我需要在多种情况下具有相同的路由模式: /* * Returns a list of all the root directories accepting query string on name */ @RequestMapping(value = "/directories", method = RequestMethod.GET) public List<DirectoryEntity> find() { return direct
/*
* Returns a list of all the root directories accepting query string on name
*/
@RequestMapping(value = "/directories", method = RequestMethod.GET)
public List<DirectoryEntity> find() {
return directoryService.findAll();
}
/*
* Returns a list of all the root directories accepting query string on name
* @param name Name of the ressources to search. Query string at format : *name*
*/
@RequestMapping(value = "/directories", method = RequestMethod.GET)
public List<DirectoryEntity> findByCriteria(@RequestParam(value = "name", required = true) String name) {
return directoryService.findByName(name);
}
/*
*返回接受名称查询字符串的所有根目录的列表
*/
@RequestMapping(value=“/directories”,method=RequestMethod.GET)
公共列表查找(){
返回directoryService.findAll();
}
/*
*返回接受名称查询字符串的所有根目录的列表
*@param name要搜索的资源的名称。查询字符串的格式:*名称*
*/
@RequestMapping(value=“/directories”,method=RequestMethod.GET)
公共列表findByCriteria(@RequestParam(value=“name”,required=true)字符串名){
返回directoryService.findByName(名称);
}
事实上,我不想在与findAll one相同的函数中管理criteria请求。是否有办法处理这种情况而不必被迫在同一个功能中管理所有内容
感谢您的改进尝试更改第二种方法@RequestMapping注释添加参数:
@RequestMapping(value = "/directories", method = RequestMethod.GET, params = "name")
public List<DirectoryEntity> findByCriteria(@RequestParam(value = "name", required = true) String name) {
return directoryService.findByName(name);
}
@RequestMapping(value=“/directories”,method=RequestMethod.GET,params=“name”)
公共列表findByCriteria(@RequestParam(value=“name”,required=true)字符串名){
返回directoryService.findByName(名称);
}
有关更多详细信息,请参见。我不太确定您在问什么,但假设要调用哪个方法的决定是基于请求参数的(必须是因为它们都是相同的URL和HTTP方法),那么类似的内容可能会有所帮助:
@RequestMapping(method=RequestMethod.GET, params={"name"})
public @ResponseBody List<DirectoryEntity> findByCriteria(@RequestParam(value = "name", required = true) String name) {
//do your stuff
}
@RequestMapping(method=RequestMethod.GET,params={“name”})
public@ResponseBody List findByCriteria(@RequestParam(value=“name”,required=true)字符串名){
//做你的事
}
在@RequestMapping
注释中包含params
属性可以消除调用方法的不确定性
我还向返回类型中添加了
@ResponseBody
,以防您希望Spring在HTTP响应中返回列表。为每个方法添加@ResponseBody
的替代方法是在类上使用@RestController
注释,它将自动为每个方法提供@ResponseBody