当前位置: 首页 > news >正文

怎样用dw做网站主页wordpress 帝国cmd

怎样用dw做网站主页,wordpress 帝国cmd,wordpress邮件发送下载,wordpress 论坛末班在日常的项目开发中经常会遇到一些取值范围固定的字段#xff0c;例如性别、证件类型、会员等级等#xff0c;此时我们可以利用枚举来最大程度减少字段的乱定义#xff0c;统一管理枚举的值。 SpringMVC中对于枚举也有默认的处理策略#xff1a; 对于RequestParam#xf…在日常的项目开发中经常会遇到一些取值范围固定的字段例如性别、证件类型、会员等级等此时我们可以利用枚举来最大程度减少字段的乱定义统一管理枚举的值。 SpringMVC中对于枚举也有默认的处理策略 对于RequestParamSpring是通过ConverterFactory来处理的大致处理策略是根据枚举名称或枚举下标来转换枚举。 对于RequestBodySpring是通过Jackson配置将json内的枚举值转换为对象的大致处理策略同样是根据枚举名称或枚举下标来转换枚举。 在SpringMVC内对枚举的默认处理逻辑是根据枚举的类名或枚举下标来将请求参数转化为枚举对象这显然不太灵活因此我们需要调整枚举字段的处理逻辑。 RequestParam处理 我们可以自定义ConvertFactory来自定义枚举字段的转化策略。 定义BaseEnum接口规定所有枚举都应该实现此接口 public interface BaseEnumT {/*** 获取枚举值*/T getCode();/*** 根据值获取对应的枚举* param enumTypeClazz 枚举类型类* param value 值*/static T extends BaseEnum T getEnumByCode(ClassT enumTypeClazz, Object value) {if (enumTypeClazz null || value null) {return null;}OptionalT optional Arrays.stream(enumTypeClazz.getEnumConstants()).filter(e -{Object enumCode e.getCode();return Objects.equals(Convert.convert(enumCode.getClass(), value),enumCode);}).findFirst();//如果不存在则抛异常return optional.orElseThrow( ()- new RuntimeException([ enumTypeClazz.getSimpleName() ]参数错误[ value ]));} } 自定义ConverterFactory Component public class EnumConverterFactory implements ConverterFactoryString, BaseEnum {Overridepublic T extends BaseEnum ConverterString, T getConverter(ClassT targetType) {return source - BaseEnum.getEnumByCode(targetType, source);} }注册ConverterFactory Configuration public class SpringMVCConfig implements WebMvcConfigurer {Overridepublic void addFormatters(FormatterRegistry registry) {registry.addConverterFactory(new EnumConverterFactory());}}这样配置后请求参数就会自动转换为枚举了。 //枚举类 AllArgsConstructor Getter public enum Gender implements BaseEnumInteger {MALE(1,男),FEMALE(2,女),;EnumValueprivate Integer code;private String value;}//通过接口接受gender参数能够根据code自动转换为对应的枚举 GetMapping(/test) public Gender insert(Gender gender) {return gender; }RequestBody处理 RequestBody是通过Jackson转换对请求参数进行处理的因此我们只需要自定义反序列化类即可 自定义序列化规则设置json内的值如何转换为枚举 public class EnumDeserializer extends JsonDeserializerBaseEnum {/*** 根据参数值获取对应的枚举* throws IOException* throws JacksonException*/Overridepublic BaseEnum deserialize(JsonParser p, DeserializationContext ctxt) throws IOException, JacksonException {// 当前值final String paramValue p.getText();//获取序列化信息final JsonStreamContext parsingContext p.getParsingContext();// 获取当前序列化的类的对象final Object currentValue parsingContext.getCurrentValue();//获取当前序列化的字段名final String currentName parsingContext.getCurrentName();try {// 反射获取当前序列化字段信息final Field declaredField currentValue.getClass().getDeclaredField(currentName);// 通过字段信息获取对应的枚举的Classfinal ClassBaseEnum targetType (ClassBaseEnum) declaredField.getType();//根据参数值获取对应的枚举BaseEnum baseEnum BaseEnum.getEnumByCode(targetType, paramValue);if (ObjectUtil.isEmpty(baseEnum)) {throw new RuntimeException([ currentName ]参数错误);}//返回枚举return baseEnum;} catch (NoSuchFieldException e) {throw new RuntimeException([ currentName ]参数错误);}}}在枚举类加上 JsonDeserialize(using EnumDeserializer.class) //可以直接加到刚刚定义的BaseEnum接口上这样所有枚举就自动继承了JsonDeserialize(using EnumDeserializer.class)public interface BaseEnumT {……}这样配置后RequestBody就能够自动转换枚举了 PostMapping(/save) public User save(RequestBody User user) {studentService.save(user);return user; }枚举字段返回序列化 如果我们返回的对象内有枚举字段SpringMVC会默认将枚举的名称作为值返回如果我们想指定枚举类的某个属性作为值可以通过JsonValue指定 AllArgsConstructor Getter public enum Gender implements BaseEnumInteger {MALE(1,男),FEMALE(2,女),;//指定转json时使用code作为值JsonValueprivate Integer code;private String value;}或者直接在枚举类上加JsonFormat将枚举转换为对象格式 JsonFormat(shape JsonFormat.Shape.OBJECT) JsonDeserialize(using EnumDeserializer.class) public interface BaseEnumT {…… }MybatisPlus对枚举的处理 MybatisPlus直接在枚举类的属性上加EnumValue即可并且兼容xml内的动态sql AllArgsConstructor Getter public enum Gender implements BaseEnumInteger {MALE(1,男),FEMALE(2,女),;//指定code作为入库时的值EnumValueprivate Integer code;private String value;}
http://www.hkea.cn/news/14581219/

相关文章:

  • 龙海市城乡建设局网站网站建设找哪个平台
  • 无锡网站建设无锡速联科技wordpress侧面小工具
  • 网站开发环境lmnp光谷做网站推广公司
  • 网站开发 前端 外包百度搜索推广登录入口
  • 网站的毕业设计怎么做aspnet网站开发作业
  • 昆明高新区网络推广厦门关键词优化报价
  • 西安网站设计公司襄垣网站建设
  • 甘肃住房城乡建设厅网站首页微信小程序代做价格
  • 廊坊集团网站建设网站建设标准简约
  • 自助式网站wordpress外链图片本地化
  • 网站模板下载百度云链接怎么做的绍兴seo整站优化
  • 桂平网站制作关注建设银行网站
  • 住房和城乡建设部网站证书查询那些网站是静态
  • 摄影网站开发背景怎么写百度seo点击器
  • 自己的电脑做网站空间视屏手机怎么注册网站
  • 中国电信新建网站备案管理系统 录完信息教育培训网站设计
  • 网站模式下做淘宝客做网站建设要什么证
  • 做兼职的网站都有哪些网站后台流程图
  • 北京网站建设模板主题王也微信头像图片
  • 企业网站域名免费下载网页模板
  • 网站会员注册系统源码静态网页模板免费
  • 手机网站空间申请做网站点子
  • 天津网站建设包括哪些酷站
  • 天津企业设计网站建设上海松江区建设局官方网站
  • 网站建设运营知识类似卡盟网站卖怎么做
  • 青岛哪个网站建设公司价格低还能好一些友情链接交易平台
  • 河池公司网站开发价格广东深圳网站建设微信商城开发
  • 柳市建设网站公司网站开发费入什么科目
  • 怎样给自己的网站做防红连接企业咨询顾问
  • 网站设计项目计划书昌大建设集团是哪里的