当前位置: 首页 > 知识库问答 >
问题:

Micronaut-bind在控制器中获取参数对象

闻枫
2023-03-14
data class MyData(
   val myDate: LocalDate
)
@Controller
class MyController {

  @Get("{?mydata*}")
  fun getMyEndpoint(mydata: MyData)...

}

共有1个答案

柏夕
2023-03-14

完整的工作示例:

import io.micronaut.core.convert.ConversionContext
import io.micronaut.core.convert.TypeConverter
import io.micronaut.http.annotation.Controller
import io.micronaut.http.annotation.Get
import java.time.LocalDate
import java.util.*
import javax.inject.Singleton

@Controller("/base")
class MyController {

   @Get("/path")
   fun getMyEndpoint(myData: MyData) {
      println("MyData: $myData")
   }

}

data class MyData(
   val myDate: LocalDate
)

@Singleton
class MyDataConverter : TypeConverter<String, MyData> {
   override fun convert(obj: String, targetType: Class<MyData>, context: ConversionContext?): Optional<MyData> =
      Optional.of(MyData(myDate = LocalDate.parse(obj)))
}
  • 调用您的服务器(例如,如果它运行在端口8080上):
    • http://localhost:8080/base/path?mydata=2019-01-01

    专业提示:如果您正在使用Jackson和Kotlin,请不要忘记包含jackson-module-kotlin依赖项:

    compile "com.fasterxml.jackson.module:jackson-module-kotlin:$YourJacksonVersionHere"
    

 类似资料:
  • 我不明白什么时候应该使用以及什么时候使用用Micronaut框架创建endpoint。 根据文档,我创建了一个服务,并以以下方式在上提供它: 但这里是用注释创建的: 在Micronaut中创建服务并使其在endpoint可用的正确方法是什么? 如果这个问题是因为对更基本的概念缺乏了解而产生的,你能给我提供参考吗?

  • 我将验证当前活动用户是否有权限访问公司。下面我有两个示例的GET和PUT请求,以获取公司的详细信息和更新公司的详细信息。有没有可能写一个数据注释,这样我就可以指向它,或者发送一个属性,这样我就可以验证用户是否可以访问它了? 示例:

  • 我定义了一条如下的虚拟路线: 如何获取外部控制器的v1和v2值?

  • 我正在寻找重定向与参数到一个控制器在Laravel和拿起参数在第二个控制器。 我是按照下面链接的文档在第一个控制器中设置的。 https://laravel.com/docs/5.3/redirects#redirecting-控制器动作 重定向 路线 第二控制器 但是,这当前返回未定义的变量。 这是最好的方法吗?如果是的话,我错在哪里?

  • 问题内容: 我是angularjs的新手,我知道它表示控制器和视图之间的连接,但是除了寻求获取scope元素之外,还有没有其他办法,我的意思是这样的: 我知道可以将同一控制器分配给多个作用域,所以也许是不可能的。 问题答案: 您可以将元素传递给控制器​​,就像作用域一样:

  • 我正在尝试为现有的Laravel项目实现一个简单的本地化。 基于以下教程实现本地化: https://laraveldaily.com/multi-language-routes-and-locales-with-auth/ 以下是本地化实施前的简化代码: web.php PollsController@view 测验 网址:http://domain.name/poll/1 结果:poll_id