Spring MVC如何转换@RequestParam值?
问题内容:
我是Spring框架的新手,并且作为一个症状,我想尽可能简单地采用其Web MVC部分,因此我正在使用批注功能与Spring一起使用。过去,我曾经使用过:
int value = Integer.valueOf(request.getParameter("numberValue"))
从参数中提取值-显式转换由返回的String getParameter()
。
有用的是,我注意到当我使用Spring的术语时:
@RequestParameter("numberValue") int numVal
转换是自动处理的。这很好,但对我来说却是一个“黑匣子”。我尝试在此处或在Spring文档中查看问题,但是所有这些信息都涉及对象或格式问题的自定义转换(例如Converter)。我只想知道Spring是如何@RequestParam
默认处理原始类型转换的。
问题答案:
我注意到,当我使用Spring的术语:@RequestParameter(“ numberValue”)int numVal时,将自动处理转换。
在这里您正在寻找类型转换
根据此链接上给出的spring文档
从请求中提取的基于字符串的值(包括请求参数,路径变量,请求标头和cookie值)可能需要转换为方法参数或字段的目标类型(例如,将请求参数绑定到@ModelAttribute中的字段参数)。如果目标类型不是String,Spring会自动转换为适当的类型。支持所有简单类型,例如int,long,Date等。