dawdler-client-plug-web
模块介绍
webmvc模块,使用上基本与spring mvc一致.提供远程加载组件的客户端,远程加载组件通知器,web监听器,web拦截器,aop实现.
1. pom中引入依赖
<groupId>club.dawdler</groupId>
<artifactId>dawdler-client-plug-web</artifactId>
2. webmvc框架使用方法
2.1 创建Controller
编写一个Controller类上加入注解@Controller.
2.2 创建API
通过RequestMapping定义webApi,RequestMapping可以用在类上和方法上,也可以用在类上,用在某个类上那么所有webApi的开头都必须以用在类上定义的RequestMapping开头.(RequestMapping用在类上只有value有效,其余无效)
3. Controller注解
3.1 标识注解介绍
注解 | 作用域 | 描述 |
---|---|---|
@Controller | 类 | 标识一个类为Controller |
@RequestMapping | 类或方法 | 标识一个api |
@ResponseBody | 方法 | 将api的method返回值以json类型输出 |
3.2 方法参数注解介绍
注解 | 作用域 | 描述 | 支持转换 |
---|---|---|---|
@RequestParam | 参数 | 获取request参数,其中value为参数名 | 支持类型转换 |
@PathVariable | 参数 | 获取antPath的参数,其中value为antPath变量名 | 支持类型转换 |
@RequestAttribute | 参数 | 获取request作用域下的属性值,其中value为属性名 | 不支持 |
@SessionAttribute | 参数 | 获取session作用域下的属性值,其中value为属性名 | 不支持 |
@RequestHeader | 参数 | 获取http请求头值,其中value为请求头名 | 只支持String或String[] |
@CookieValue | 参数 | 获取cookie值,其中value为cookie名 | 只支持String |
@RequestBody | 参数 | 将一个自定义的对象通过json方式进行映射,前端提交必须以body中传递json体的方式提交 | 不支持 |
3.3 RequestMapping源码注释
public @interface RequestMapping {
String[] value() default {};//path 支持antPath 只有value可以用到类上,以下其他只在方法上生效
RequestMethod[] method() default {};//请求方法 POST GET以及其他
ViewType viewType() default ViewType.json;//响应的视图类型 支持json,jsp,velocity
boolean generateValidator() default false;//生成验证规则,根据后台的验证框架生成前端的表达式
String input() default "";//配置验证框架之后验证未通过的跳转路径,默认为空,返回json类型的错误提醒,如果配置会在request域下设置属性validate_error并forward到指定的路径
long uploadSizeMax() default 0l;//上传文件最大的限制,单位byte
long uploadPerSizeMax() default 0l;//上传单个文件最大的限制,单位byte
String exceptionHandler() default "";//异常处理者,系统内提供三种处理者json, jsp, velocity,会根据ViewType自动选择,如果有需要可以扩展,参考HttpExceptionHolder的register方法,可以在监听器启动时扩展,一般不会考虑扩展所以没采用SPI方式配置
enum ViewType {
json, jsp, velocity
}
}
4. Controller方法参数类型说明
支持方法参数类型如下:
4.1 基础类型
long | int | short | byte | double | float | boolean | char |
---|
long[] | int[] | short[] | byte[] | double[] | float[] | boolean[] | char[] |
---|
4.2 基础类型包装类
Long | Integer | Short | Byte | Double | Float | Boolean | Character |
---|
Long[] | Integer[] | Short[] | Byte[] | Double[] | Float[] | Boolean[] | Character[] |
---|
4.3 大数值对象
BigDecimal | BigDecimal[] |
---|
4.4 文件上传对象
UploadFile | UploadFile[] |
---|
说明:
UploadFile类中的一些方法
getInputStream() //输入流
getBytes() //字节数组
getFileName() //获取文件名
getSize() //获取文件大小
delete() //删除文件,此方法架构会自动调用无需开发者调用
4.5 其他内置对象
HttpServletRequest | HttpServletResponse | HttpSession | InputStream | Reader | PrintWriter | Locale | Map | ViewForward |
---|
说明:
Map 为 request.getParameterMap();
InputStream 为 request.getInputStream();
Reader 为 request.getReader();
PrintWriter 为 response.getWriter();
Locale 为 request.getLocale();
ViewForward 提供了非常丰富的api 可以设置数据集,可以设置模板路径
4.6 自定义对象
使用@RequestBody注解标识