java - 如何添加多个查询参数不同的 RestController 端点?

标签 java spring spring-mvc spring-rest

如果缺少特定的查询参数,我如何简单地重定向 url?

@RestController
public class PersonController {
    //only in case the "sort" query parameter is missing
    @GetMapping("/persons")
    public String unsorted() {
         return "redirect:/persons?sort=name";
    }

    //only in case the "sort" query parameter exists
    @GetMapping("/persons")
    public String sorted() {
         //...
    }
}

最佳答案

  • 使用@RequestParam提取查询参数
  • 为@RequestParam 添加参数:value、defaultValue、required

使用 java >= 8:

@RestController
public class PersonController {
     @GetMapping("/persons")
     public String personList(@RequestParam(value = "sort", defaultValue = "name") Optional<String> sort) {
         //handling process here
     }
}

使用 java < 8:

@RestController
public class PersonController {
     @GetMapping("/persons")
     public String personList(@RequestParam(value = "sort", defaultValue = "name", required=false) String sort) {
         //handling process here
     }
}

关于java - 如何添加多个查询参数不同的 RestController 端点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57958864/

相关文章:

java - 无法找到其他包中声明的 Activity

json - 在 DIspatcherServlet 中找不到映射

Spring - 如何保护 RESTful 私有(private)资源?

java - SpringMVC 模型属性在发布时返回 null

java - 在网络级别合并的 TCP 数据包

java - Solr 排序问题

java - 如何确保 java 中的注释执行顺序?

java - 如何在编译期间使用java调试标志查找参数

java - 不满意的依赖异常 : Error creating bean with name 'procjectController' : Unsatisfied dependency expressed through field

java - 如何修复分页以在 RecyclerView 中从服务器加载更多数据?