2

在 spring-mvc 中,可以使用 @RequestParam 构建对控制器调用的查询。如果您不提供该值,则默认为方法参数名称。

例子 :

@RequestMapping("/hello")
@ResponseBody
public String hello(@RequestParam String name)
{
    return "hello "+name; 
}

映射到

/hello?name=x 

我的问题是这个。spring 如何绑定这些信息(甚至访问它)?在运行时没有丢弃参数名称吗?它是否使用像 paranamer 这样的库?

4

1 回答 1

2

仅当您在此处编译类时启用了调试功能,它才有效。然后编译器保留信息。

作为最后一个春季版本的一部分,他们将其扩展为包括构造函数。对我来说似乎很糟糕 - 如果您忘记添加调试选项,那么您的应用程序将停止工作!

因此,一种可能的方法(将调试设置为 true)似乎是使用字节码操作,并且有使用 asm 时获取它们示例。我不知道这是否与 Spring 的做法相同。

于 2012-07-03T15:46:49.120 回答