我正在使用@RequestParam注释来获取请求参数,并使用相同的方法将值插入到数据库中。 我已将控制器设置为重定向到同一页面,该页面包含用户输入值的文本字段,这些值正在使用@RequestParam注释进行读取。
但是在我将值输入文本字段并单击“提交”后,它会抛出此错误
请求处理失败;嵌套异常是java.lang.IllegalArgumentException:参数类型的名称[java.lang.String]不可用,参数名称信息也没有在类文件中找到。
我是Spring 3的新手,无法理解错误。任何人都可以对此有所了解。
提前致谢, 的Vivek
答案 0 :(得分:9)
为了将request参数的值注入到handler方法参数中,应满足以下任一条件
请求参数的名称必须与方法参数的名称匹配。 例如 以下将把名为“studentName”的请求参数注入方法参数studentName
public String goToStep(@RequestParam String studentName)
如果请求参数名称与方法参数不匹配,则必须显式指定。以下内容将“nameOfStudent”请求参数注入studentName:
public String goToStep(@RequestParam("nameOfStudent") String studentName)
如果您的问题仍然存在,请发布您的处理程序方法代码。
答案 1 :(得分:4)
我问你正在使用的版本,因为我几天前遇到了类似的问题。我使用的是Spring 3.1.0.M2,当我在代理@Controller中使用@PathVariable时出现了同样的异常。
这是由resolved known bug引起的。你只需要切换到3.0.6或尝试每晚构建3.1.0.BUILD-SNAPSHOT。当然,后一种选择不建议用于生产环境。