解析参数流程
2016-11-21 19:05:31 0 举报
参数流程是一种在程序设计中常见的方法,它通过定义和传递参数来控制程序的执行。首先,程序员需要在函数或方法中定义参数,这些参数可以是任何数据类型,如整数、字符串、列表等。然后,当调用这个函数或方法时,程序员需要传递实际的值给这些参数。这些值被称为实参。在函数或方法内部,参数被用来执行特定的操作。例如,一个计算两个数之和的函数可能会有两个参数,每个参数代表一个数。当这个函数被调用时,程序员会传递两个实参给这两个参数,函数会返回这两个数的和。通过这种方式,参数流程使得程序更加灵活和可重用。
作者其他创作
大纲/内容
该形参后面是否有类型为Errors的形参
用attrName和bindObject构造WebDataBinder类型对象binder
实参值是implicitModel
实参的值就是这些类型对应的值
N
RequestParam、RequestHeader、RequestBody、CookieValue、PathVariable、ModelAttribute同一个参数上仅能出现一个,如果超过一个,就报异常
Y
将binder中的target和bindingResult内容全部put到implicitModel中
取implicitModel中key为attrName的对象作为bindObject
形参类型是否是SessionStatus或HttpEntity类型
implicitModel中是否包含key为attrName的元素
根据形参类型构造一个新的对象作为bindObject
attrName是否为空字符串
attrName值取形参类型的简单类名(首字母小写)
形参类型是否是Model或Map类型
resolveModelAttribute流程
binder对象调用它的bind方法将request中的参数绑定到它的target属性中
获取参数上的注解参数上支持下列注解RequestParamRequestHeaderRequestBodyCookieValuePathVariableModelAttribute上面6个注解只能有一个ValueValidated
实参值就是对应的值
后面参数的实参值是binder对象的bindingResult属性
解析参数开始
形参类型是否是下面的类型:ServletRequestServletResponseHttpSessionPrincipalLocaleInputStreamReaderOutputStreamWriter
一个参数解析完毕
形参类型是否是Errors类型
binder对象的target属性就作为实参的参数值
上步中头6个注解一个都不存在
报异常:Errors/BindingResult类型的形参必须跟在model类型形参的后面
0 条评论
下一页