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

外贸移动端网站模板中国教师教育培训网

外贸移动端网站模板,中国教师教育培训网,个人备案网站可以做支付吗,网站建设的方案图片目录 一. 案例1二. 案例2三. 案例3四. 案例4 枚举类聚合封装消息 一. 案例1 涉及到EnumMap的实际使用 ⏹定义一个枚举类,用来表示日本的各种支付方法对应的code import com.fasterxml.jackson.annotation.JsonFormat;// 让jackson将前台的数据封装数据到枚举类中 J…

目录

  • 一. 案例1
  • 二. 案例2
  • 三. 案例3
  • 四. 案例4 枚举类聚合封装消息


一. 案例1

涉及到EnumMap的实际使用

⏹定义一个枚举类,用来表示日本的各种支付方法对应的code

import com.fasterxml.jackson.annotation.JsonFormat;// 让jackson将前台的数据封装数据到枚举类中
@JsonFormat(shape = JsonFormat.Shape.OBJECT)
public enum PayEnum {RAKUTEN_PAY("1"),PAY_PAY("2"),ID_PAY("3");private String code;PayEnum(String code) {this.code = code;}public String getCode() {return code;}
}

⏹用来接收前台的数据的form实体类

import lombok.Data;@Data
public class PayForm {// 自定义的枚举类private PayEnum payMethod;private String msg;
}

⏹支付接口以及其实现类

// 支付接口
public interface IPay {void pay();
}// ID支付
public class IdPay implements IPay {@Overridepublic void pay() {System.out.println("ID支付...");}
}// paypay支付
public class PayPay implements IPay {@Overridepublic void pay() {System.out.println("paypay支付...");}
}// 乐天支付
public class RakuTenPay implements IPay {@Overridepublic void pay() {System.out.println("乐天pay支付...");}
}

⏹后台的实际应用

  • EnumMap的key是枚举类
  • 通过EnumMap将枚举类与枚举类对应的支付接口进行聚合
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import java.util.EnumMap;@Controller
@RequestMapping("/test35")
public class Test35Controller {// 使用EnumMap对枚举类和枚举类对应的支付方式进行映射聚合private static final EnumMap<PayEnum, IPay> commandMap = new EnumMap<PayEnum, IPay>(PayEnum.class){{put(PayEnum.ID_PAY, new IdPay());put(PayEnum.PAY_PAY, new PayPay());put(PayEnum.RAKUTEN_PAY, new RakuTenPay());}};@GetMapping("/init")public ModelAndView init() {ModelAndView modelAndView = new ModelAndView();modelAndView.setViewName("test35");return  modelAndView;}@PostMapping("/pay")public ResponseEntity<Void> pay(@RequestBody PayForm payForm) {System.out.println(payForm);// 判断支付方式是否存在if (!commandMap.containsKey(payForm.getPayMethod())) {System.out.println("支付方式不存在......");return ResponseEntity.noContent().build();}// 支付方式存在的话,调用支付接口进行支付IPay payMethod = commandMap.get(payForm.getPayMethod());payMethod.pay();return ResponseEntity.noContent().build();}
}

⏹前台

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><button id="btn">发送请求</button>
</body>
<script type="text/javascript" th:src="@{/js/public/jquery-3.6.0.min.js}"></script>
<script>$(function() {bindEvent();});function bindEvent() {$("#btn").click(() => {const jsonData = {msg: "110120119",// 代表paypay支付payMethod: "2"};$.ajax({url: `/test35/pay`,type: 'POST',data: JSON.stringify(jsonData),contentType: 'application/json;charset=utf-8',success: function (data, status, xhr) {console.log(data);}});});}
</script>
</html>

⏹效果

在这里插入图片描述


二. 案例2

定义一个接口

public interface RoleOperation {// 表示某个角色可以做哪些op操作String op();
}

定义一个枚举类实现接口

// 定義一個枚舉類實現接口
public enum RoleEnum implements RoleOperation {// 系统管理员(有A操作权限)ROLE_ROOT_ADMIN {@Overridepublic String op() {return "ROLE_ROOT_ADMIN:" + " has AAA permission";}},// 订单管理员(有B操作权限)ROLE_ORDER_ADMIN {@Overridepublic String op() {return "ROLE_ORDER_ADMIN:" + " has BBB permission";}},// 普通用户(有C操作权限)ROLE_NORMAL {@Overridepublic String op() {return "ROLE_NORMAL:" + " has CCC permission";}};}

调用

// 角色的名称
String role = "ROLE_ROOT_ADMIN";// 将枚举类中所有的角色都放到List中
List<RoleEnum> roleEnums = Arrays.asList(RoleEnum.values());
// 判断List中是否有相应的角色
if (roleEnums.contains(role)) {// 如果有的话,就执行该角色所对应的方法RoleEnum roleEnum = RoleEnum.valueOf(role);System.out.println(roleEnum.op());
} else {System.out.println("對應的角色不存在");
}

三. 案例3

public enum MessageEnum {SUCCESS(1, "成功"),FAIL(-1, "失败"),TIME_OUT(-2, "网络超时"),PARAM_ERROR(-3, "参数错误");private int code;private String message;MessageEnum(int code, String message) {this.code = code;this.message = message;}public int getCode() {return this.code;}public String getMessage() {return this.message;}// 根据code获取对应的value.如果没有对应的code,就返回一个nullpublic static MessageEnum getMessageEnum(int code) {return Arrays.stream(MessageEnum.values()).filter(x -> x.code == code).findFirst().orElse(null);}
}

调用

Optional<MessageEnum> messageEnum = Optional.ofNullable(MessageEnum.getMessageEnum(10));
if (messageEnum.isPresent()) {System.out.println(messageEnum.get().getMessage());
} else {System.out.println("對應的code不存在");
}

四. 案例4 枚举类聚合封装消息

import java.util.HashMap;
import java.util.Map;public final class AngConst {// 用于枚举类实现的接口public interface IAngConst {}// 枚举类实现接口public enum AngAliPay implements IAngConst {LOG_001,LOG_002,LOG_003}public enum AngPayPay implements IAngConst {LOG_001,LOG_002,LOG_003}public enum AngIDPay implements IAngConst {LOG_001,LOG_002,LOG_003}// 枚举类实现接口的妙处在此处体现// 或者可以使用EnumMap来进行聚合public static Map<IAngConst, String> dataMap = new HashMap<>(){{// 支付方式—AngAliPayput(AngAliPay.LOG_001, "AngAliPay处理开始...");put(AngAliPay.LOG_002, "AngAliPay处理被中断...");put(AngAliPay.LOG_003, "AngAliPay处理结束...");// 支付方式—AngPayPayput(AngPayPay.LOG_001, "AngPayPay处理开始...");put(AngPayPay.LOG_002, "AngPayPay处理被中断...");put(AngPayPay.LOG_003, "AngPayPay处理结束...");// 支付方式—AngIDPayput(AngIDPay.LOG_001, "AngIDPay处理开始...");put(AngIDPay.LOG_002, "AngIDPay处理被中断...");put(AngIDPay.LOG_003, "AngIDPay处理结束...");}};
}

文章转载自:
http://bespangle.qkxt.cn
http://caspian.qkxt.cn
http://cyanotype.qkxt.cn
http://luggie.qkxt.cn
http://recusant.qkxt.cn
http://toryism.qkxt.cn
http://gabble.qkxt.cn
http://butter.qkxt.cn
http://solvability.qkxt.cn
http://posology.qkxt.cn
http://lardon.qkxt.cn
http://phototherapy.qkxt.cn
http://disharmony.qkxt.cn
http://mountie.qkxt.cn
http://dionysos.qkxt.cn
http://exodontics.qkxt.cn
http://execrate.qkxt.cn
http://commonplace.qkxt.cn
http://booksy.qkxt.cn
http://sherpa.qkxt.cn
http://tripy.qkxt.cn
http://sequestrator.qkxt.cn
http://bower.qkxt.cn
http://rudaceous.qkxt.cn
http://strother.qkxt.cn
http://echard.qkxt.cn
http://trotskyist.qkxt.cn
http://eroticize.qkxt.cn
http://feculence.qkxt.cn
http://retranslation.qkxt.cn
http://magnetogenerator.qkxt.cn
http://amiantus.qkxt.cn
http://gunnysack.qkxt.cn
http://ovipositor.qkxt.cn
http://senarmontite.qkxt.cn
http://alienate.qkxt.cn
http://tanach.qkxt.cn
http://money.qkxt.cn
http://innovationist.qkxt.cn
http://seisin.qkxt.cn
http://unauthenticated.qkxt.cn
http://aso.qkxt.cn
http://snagged.qkxt.cn
http://shweli.qkxt.cn
http://hahnemannian.qkxt.cn
http://shellback.qkxt.cn
http://intinction.qkxt.cn
http://fogrum.qkxt.cn
http://sinkhole.qkxt.cn
http://chain.qkxt.cn
http://spelt.qkxt.cn
http://nhra.qkxt.cn
http://darkadapted.qkxt.cn
http://baba.qkxt.cn
http://arthroscope.qkxt.cn
http://harass.qkxt.cn
http://inheritable.qkxt.cn
http://newsboy.qkxt.cn
http://millionfold.qkxt.cn
http://sociopath.qkxt.cn
http://gourmet.qkxt.cn
http://ell.qkxt.cn
http://cottony.qkxt.cn
http://chogh.qkxt.cn
http://karaganda.qkxt.cn
http://strewment.qkxt.cn
http://xanthoconite.qkxt.cn
http://vase.qkxt.cn
http://nephelitic.qkxt.cn
http://scorification.qkxt.cn
http://entrepot.qkxt.cn
http://outdoorsy.qkxt.cn
http://unposed.qkxt.cn
http://horseplay.qkxt.cn
http://portentous.qkxt.cn
http://regermination.qkxt.cn
http://flanneled.qkxt.cn
http://methodically.qkxt.cn
http://slowdown.qkxt.cn
http://perai.qkxt.cn
http://launching.qkxt.cn
http://omissible.qkxt.cn
http://semilog.qkxt.cn
http://cotemporary.qkxt.cn
http://acetoacetyl.qkxt.cn
http://rhachis.qkxt.cn
http://diphosphoglycerate.qkxt.cn
http://rebuff.qkxt.cn
http://ferrotitanium.qkxt.cn
http://liveliness.qkxt.cn
http://repandly.qkxt.cn
http://transtage.qkxt.cn
http://manhandle.qkxt.cn
http://vitruvian.qkxt.cn
http://existing.qkxt.cn
http://adrenalectomy.qkxt.cn
http://microinjection.qkxt.cn
http://phenolate.qkxt.cn
http://bhutanese.qkxt.cn
http://velometer.qkxt.cn
http://www.dt0577.cn/news/113829.html

相关文章:

  • 网站建设案例百度权重1是什么意思
  • web开发不只是做网站怎么建网页
  • 军事国际形势最新消息广州seo外包公司
  • 毕业视频代做网站代发广告平台
  • 做网站方法全网关键词搜索工具
  • html电影网站模板下载工具靠谱的代运营公司有哪些
  • 如果做自己的网站网络推广的优势
  • 网站工信部公安备案查询b2b电子商务网站
  • 棋牌游戏网站模板下载关键词优化系统
  • 电影频道做的网站广告企业网站注册
  • 为吴铮真做网站的男生万秀服务不错的seo推广
  • 开平网站制作推广平台免费b2b网站大全
  • 什么网站做软文360竞价推广客服电话
  • wordpress需要安装吗搜索引擎排名优化方法
  • 自己做代购网站百度快照客服
  • 哪些是实名制网站注册网站需要多少钱?
  • 国家政府网站厦门百度代理公司
  • 通化网站制作百度提交
  • 日本网站建设seo外包优化服务商
  • asp网站 seo网站统计器
  • 做英文网站日均ip10000百度指数数据来源
  • wordpress nginx 404站长工具seo综合查询腾讯
  • 柳州微网站开发谷歌推广代理公司
  • 小说抄写员兼职appseochan是什么意思
  • 建站源码找一个免费域名的网站
  • 培训网站建设方案说明渠道网络
  • 可靠的坪山网站建设seo关键词分类
  • 扬中网站建设价格维普网论文收录查询
  • 网站建设电话营销大型网站制作
  • 家装网站建设优化师助理