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

怎样用dw做网站主页wordpress 电台源码

怎样用dw做网站主页,wordpress 电台源码,登封网站设计,dedecms怎么部署网站在日常的项目开发中经常会遇到一些取值范围固定的字段#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/14467016/

相关文章:

  • 请问网上有没有比较好的网站可以做照片书的呀?要求质量比较好的!北京网站建设公司 蓝纤科技
  • 网站怎么做联系我们页面如何用ftp上传文件到网站
  • 企业所得税怎么算的seo优化工作有哪些
  • 自己做网站卖什么太原定制网站制作流程
  • 本地服务器网站建设市场营销策略分析案例
  • 正规网站建设公司多少钱wordpress截取
  • deals网站建设岚庭装饰公司口碑怎么样
  • 德清做网站贵州建设项目门户网站
  • 不花钱的网站怎么做个人作品网站怎么做
  • 酒店类网站开发的策略ui网页设计实习周报
  • 做外贸比较好得网站整个网站全部乱码
  • 建设保护动物网站的素材工信部备案网站
  • 学校网站建设项目可行性分析天津网站优化收费
  • 建设音乐主题网站app设计方案计划书
  • 罗湖网站设计价格编程开源网站
  • 英文外贸网站 php源码网络工程师的发展前景
  • 广州网站建设技术深圳市制作网站
  • 机关局域网网站建设品牌推广费
  • 自网站EXCel数据导入怎么做建筑装修装饰工程资质
  • 做网站公司哪家阿里云wordpress很慢
  • 构建一个商务网站的步骤有哪些如何做wap网站
  • wap网站制作模板微网站开发 在线商城
  • 创手机网站本地门户网站源码
  • 做购物商城类网站需要年会策划方案
  • 建设部一建查询网站平面网页设计规范
  • 最火的网站开发语言免费推广引流平台推荐
  • 哪个网站是自己销售功能性的网站
  • 网站建设适合手机怎样查看wordpress
  • 站长工具whois查询动画设计考研
  • wap手机网站静态模板黄山旅游最佳时间