在 Spring 3 中使用 @RequestParam 会引发错误

发布于 2024-12-05 15:24:26 字数 352 浏览 0 评论 0原文

我使用 @RequestParam 注释来获取请求参数,并使用相同的注释将值插入到数据库中。 我已将控制器设置为重定向到同一页面,该页面包含供用户输入值的文本字段,这些值是使用 @RequestParam 注释读取的。

但是当我在文本字段中输入值并单击“提交”后,它会抛出此错误

请求处理失败;嵌套异常是 java.lang.IllegalArgumentException:参数类型名称 [java.lang.String] 不可用,并且在类文件中也找不到参数名称信息。

我是 Spring 3 的新手,无法理解该错误。任何人都可以阐明这一点吗?

提前致谢, 维韦克

I am using the @RequestParam annotation to get the request parameters , and using the same to insert the values into the DB.
I have setup the controller to re-direct to the same page which contains the text fields for the user to enter the values, which are being read using the @RequestParam annotation.

But after I enter the values into the text fields , and click submit , it throws this error

Request processing failed; nested exception is java.lang.IllegalArgumentException: Name for argument type [java.lang.String] not available, and parameter name information not found in class file either.

I am a newbie to Spring 3 , and unable to understand the error. Can anybody please shed light on the same.

Thanks in advance,
Vivek

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

无法言说的痛 2024-12-12 15:24:26

为了将请求参数的值注入到处理程序方法参数中,应满足以下任一条件

  1. 请求参数的名称必须与方法参数的名称匹配。
    例如
    下面将名为“studentName”的请求参数注入到方法参数studentName

    public String goToStep(@RequestParam String StudentName)

  2. 如果与方法参数不匹配,则必须显式指定请求参数名称。下面将把“nameOfStudent”请求参数注入到studentName中:

    public String goToStep(@RequestParam("nameOfStudent") String StudentName)

如果您的问题仍然存在,请发布您的处理程序方法代码。

In order to inject the value of request parameter into your handler method parameter, either one of the following should be satisfied

  1. The name of the request parameter must match the name of the method parameter.
    e.g.
    Following will inject the request parameter named "studentName" into the method parameter studentName

    public String goToStep(@RequestParam String studentName)

  2. The request parameter name must be explicitly specified if it does not match the method parameter. The following will inject "nameOfStudent" request parameter into studentName:

    public String goToStep(@RequestParam("nameOfStudent") String studentName)

Please post your handler method code if your issue continues to persist.

爱要勇敢去追 2024-12-12 15:24:26

我询问您正在使用的版本,因为几天前我遇到了类似的问题。我使用的是 Spring 3.1.0.M2,当我在代理 @Controller 中使用 @PathVariable 时,出现了相同的异常。

这是由已解决的已知错误引起的。您只需切换到 3.0.6 或尝试每晚构建 3.1.0.BUILD-SNAPSHOT。当然,生产环境不推荐后一种选择。

I asked for the version you are using because I ran with a similar problem a few days ago. I was using Spring 3.1.0.M2 and the same exception appeared when I was using @PathVariable in proxied @Controller.

It was caused by a resolved known bug. You just have to switch to 3.0.6 or try the nightly build 3.1.0.BUILD-SNAPSHOT. Of course, the latter option is not recommended for production environment.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文