SpringMVC 多层嵌套的数据接收与展现
来源:互联网 发布:php注册登录 编辑:程序博客网 时间:2024/06/05 05:24
业务需求与设计
一个媒体可以创建多条返点规则
返点规则 分为 阶梯返点 / 固定返点
阶梯返点 分为 返点下限 与 返点上限 以及 返点率
固定返点 分为 返点率
设计
返点规则 - 》 返点规则 JavaBean
返点明细 -》 返点明细 JavaBean
返点规则 下面有 返点明细(固定/阶梯)。
返点明细
package com.ybl.test.threetiercurd.bean;/** * Created by szh on 2017/11/28. */public class RebateTest { private String rebateFloor; private String rebateUpper; private String fixedUpper; public String getRebateFloor() { return rebateFloor; } public void setRebateFloor(String rebateFloor) { this.rebateFloor = rebateFloor; } public String getRebateUpper() { return rebateUpper; } public void setRebateUpper(String rebateUpper) { this.rebateUpper = rebateUpper; } public String getFixedUpper() { return fixedUpper; } public void setFixedUpper(String fixedUpper) { this.fixedUpper = fixedUpper; }}
返点规则
package com.ybl.test.threetiercurd.bean;import java.util.List;/** * Created by szh on 2017/11/28. */public class RebateRuleTest { private String rebateRuleName; private Integer rebateRuleType; private List<RebateTest> rebateTestList; public Integer getRebateRuleType() { return rebateRuleType; } public void setRebateRuleType(Integer rebateRuleType) { this.rebateRuleType = rebateRuleType; } public String getRebateRuleName() { return rebateRuleName; } public void setRebateRuleName(String rebateRuleName) { this.rebateRuleName = rebateRuleName; } public List<RebateTest> getRebateTestList() { return rebateTestList; } public void setRebateTestList(List<RebateTest> rebateTestList) { this.rebateTestList = rebateTestList; }}
媒体下的返点规则列表
package com.ybl.test.threetiercurd.bean;import java.util.List;/** * Created by szh on 2017/11/28. */public class ThreeTierVO { public String mediaName; List<RebateRuleTest> rebateRuleTestList; public String getMediaName() { return mediaName; } public void setMediaName(String mediaName) { this.mediaName = mediaName; } public List<RebateRuleTest> getRebateRuleTestList() { return rebateRuleTestList; } public void setRebateRuleTestList(List<RebateRuleTest> rebateRuleTestList) { this.rebateRuleTestList = rebateRuleTestList; }}
前端Controller
package com.ybl.test.threetiercurd.controller;import com.ybl.test.threetiercurd.bean.RebateRuleTest;import com.ybl.test.threetiercurd.bean.RebateTest;import com.ybl.test.threetiercurd.bean.ThreeTierVO;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.RequestMapping;import java.util.ArrayList;import java.util.List;/** * Created by szh on 2017/11/28. */@RequestMapping("/threeTierContoller/*")@Controllerpublic class ThreeTierContoller { @RequestMapping("show") public String showThreeTier(Model model){ RebateTest rebateTest1 = new RebateTest(); rebateTest1.setRebateFloor("下限 : 0"); rebateTest1.setRebateUpper("上限 : 10"); RebateTest rebateTest2 = new RebateTest(); rebateTest2.setRebateFloor("下限 : 10"); rebateTest2.setRebateUpper("上限 : 20"); RebateTest rebateTest3 = new RebateTest(); rebateTest3.setRebateFloor("下限 : 20"); rebateTest3.setRebateUpper("上限 : 40"); List<RebateTest> rebateTestList1 = new ArrayList<>(); rebateTestList1.add(rebateTest1); rebateTestList1.add(rebateTest2); rebateTestList1.add(rebateTest3); RebateRuleTest rebateRuleTest1 = new RebateRuleTest(); rebateRuleTest1.setRebateRuleName("测试返点规则1"); rebateRuleTest1.setRebateRuleType(1); rebateRuleTest1.setRebateTestList(rebateTestList1); //------------------------------------------ RebateTest rebateTest4 = new RebateTest(); rebateTest4.setFixedUpper("固定阶梯 : 50"); List<RebateTest> rebateTestList2 = new ArrayList<>(); rebateTestList2.add(rebateTest4); RebateRuleTest rebateRuleTest2 = new RebateRuleTest(); rebateRuleTest2.setRebateRuleName("测试返点规则2"); rebateRuleTest2.setRebateRuleType(0); rebateRuleTest2.setRebateTestList(rebateTestList2); ThreeTierVO threeTierVO = new ThreeTierVO(); threeTierVO.setMediaName("三层关系测试"); List<RebateRuleTest> rebateRuleTestList = new ArrayList<>(); rebateRuleTestList.add(rebateRuleTest1); rebateRuleTestList.add(rebateRuleTest2); threeTierVO.setRebateRuleTestList(rebateRuleTestList); model.addAttribute("threeTierVO",threeTierVO); return "jsp/test/threetiercurd/testThreeTier.jsp"; } @RequestMapping("modify") public String modifyThreeTier(Model model, ThreeTierVO threeTierVO){ model.addAttribute("threeTierVO",threeTierVO); for(int i=0; i<threeTierVO.getRebateRuleTestList().size(); i++){ System.out.println("返点规则名字 : " + threeTierVO.getRebateRuleTestList().get(i).getRebateRuleName()); System.out.println("返点条目数量 : " + threeTierVO.getRebateRuleTestList().get(i).getRebateTestList().size()); } return "jsp/test/threetiercurd/testThreeTier.jsp"; }}
页面
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %><%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %><!DOCTYPE html><html><head> <title>3层嵌套的增删查改例子</title> <link rel="shortcut icon" href="${baseResourcePath}/images/favicon.ico"> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/> <meta http-equiv="Cache-Control" content="no-store"/> <meta http-equiv="Pragma" content="no-cache"/> <meta http-equiv="Expires" content="0"/> <meta http-equiv=X-UA-Compatible content="IE=edge,chrome=1"> <meta name="viewport" content="initial-scale=1,maximum-scale=1"/> <jsp:include page="/resource/jsp/common/resourceFile.jsp"/></head><body> <form action="/threeTierContoller/modify" method="post"> <label>媒体名称</label> <input type="text" name="mediaName" value="${threeTierVO.mediaName}"/><br/><br/><br/> <c:forEach items="${threeTierVO.rebateRuleTestList}" var="rebateRuleTest" varStatus="rebateRulestatus"> <label>返点规则名称</label> <input type="text" name="rebateRuleTestList[${rebateRulestatus.index}].rebateRuleName" value="${rebateRuleTest.rebateRuleName}"/><br/> <!-- 固定返点 --> <c:if test="${rebateRuleTest.rebateRuleType == 0 }"> <label>固定返点表单</label><br/> <input type="hidden" name="rebateRuleTestList[${rebateRulestatus.index}].rebateRuleType" value="0"/> <c:forEach items="${rebateRuleTest.rebateTestList}" var="rebateTest2" varStatus="fixedRebateStatus"> <label>固定返点</label> <input type="text" name="rebateRuleTestList[${rebateRulestatus.index}].rebateTestList[${fixedRebateStatus.index}].fixedUpper" value="${rebateTest2.fixedUpper}" /> </c:forEach> <br/><br/><br/><br/><br/><br/> </c:if> <!-- 阶梯返点 --> <c:if test="${rebateRuleTest.rebateRuleType == 1 }"> <label>阶梯返点表单</label><br/> <input type="hidden" name="rebateRuleTestList[${rebateRulestatus.index}].rebateRuleType" value="1"/> <c:forEach items="${rebateRuleTest.rebateTestList}" var="rebateTest3" varStatus="stageRebateStatus"> <label>阶梯返点<c:out value="${stageRebateStatus.index}"/></label><br/> <label>阶梯下限</label> <input type="text" name="rebateRuleTestList[${rebateRulestatus.index}].rebateTestList[${stageRebateStatus.index}].rebateFloor" value="${rebateTest3.rebateFloor}" /> <label>阶梯上限</label> <input type="text" name="rebateRuleTestList[${rebateRulestatus.index}].rebateTestList[${stageRebateStatus.index}].rebateUpper" value="${rebateTest3.rebateUpper}" /><br/> </c:forEach> <br/><br/><br/><br/><br/><br/> </c:if> </c:forEach> <input type="submit" value="提交"> </form></body></html>
效果:
阅读全文
0 0
- SpringMVC 多层嵌套的数据接收与展现
- 提取多层嵌套Json数据
- 提取多层嵌套Json数据
- 提取多层嵌套Json数据
- 多层嵌套JSON格式数据的快速解析
- 利用Gson解析多层嵌套的JSON数据
- 集合框架_集合多层嵌套的数据分析
- Angular中ng-repeat与ul li的多层嵌套
- SpringMVC 接收表单数据的方式
- SpringMVC 接收表单数据的方式
- SpringMVC接收json数据的demo
- springMVC接收前端json数据的总结
- springmvc接收ajax的json格式数据
- MSSQL的多层嵌套查询
- fastjson 多层嵌套的问题
- js引号的多层嵌套
- SpringMVC接收list数据
- Android Gson解析多层嵌套复杂数据
- SpringBoot学习-支持Jersey
- effective C++ 学习 0_导读
- cookie 和session 的区别详解
- 自定义拦截器的两种写法
- linux解决文件读写权限的设置问题
- SpringMVC 多层嵌套的数据接收与展现
- 【敏捷】敏捷理论
- Android 自定义RecyclerView实现滑行选择日期
- HDU1078:FatMouse and Cheese(记忆化)
- Apache Hadoop 3.0.0 GA版正式发布,可以部署到线上
- 【Servlet】【ajax】分页显示
- Android onStartCommand返回值问题
- ajax api 动态查询全国天气信息
- iOS crash报告分析