Spring web mvc处理程序参数在不同的方法中

时间:2018-03-29 15:14:59

标签: java spring spring-mvc kotlin

首先,我使用Spring WebMVC(5.0.4到Spring Boot 2.0)与Kotlin(但这个问题与Kotlin无关)。

我试图将一些常见功能抽象到一个抽象基类中,我可以在几个控制器中重用它。例如,我的基类中有一个getAll方法,它使用@GetMapping标记为处理程序方法。现在我想从这个getAll方法中调用这个类中的其他一些(抽象)方法。然而,在那些抽象方法中,正常的参数绑定机制不可用(例如,我不能使用@RequestParam)。有没有办法解决这个问题?如何在那些抽象(非处理程序)方法中访问请求参数? 我知道我可以@RequestParam使用MultiValueMap<String, String>来获取getAll方法中的所有参数,但之后我没有任何参数转换可用。

一些代码:

abstract class MyBaseController {

    @GetMapping fun getAll(@RequestParam allParameters: MultiValueMap<String, String>) {
        // perform some logic
        doStuff()
    }

    abstract fun doStuff()
}

class MyController : MyBaseController() {

    override fun doStuff() {
        // how to obtain e.g. request parameter "ids" as a List<UUID> here?
    }
}

0 个答案:

没有答案