场景

在后台管理中,有些报表要显示的字段很多,当进入报表的主页面时,往往只显示部分重要的内容,然后在每一条记录的后面添加一个查看详情按钮,通过点击详情按钮,跳转到显示所有信息的页面。

有时一张报表中存取的字段为数字,比如1就代表“是”;0就代表“否”,而我们在查看详情时,往往要关联码表来显示数字所对应的中文。

实现逻辑

1.在报表主页面添加详情按钮,点击详情按钮,跳转到action,并将当前数据的ID传给action。

2.在action中,在对应的方法中,参数接受传过来的ID,然后调用service的getUserBillDetailsById(id)。

3.在service的实现中调用dao的getUserBillDetailsById(id)。

4.对应的mapper文件中与dao中同名的select中,进行关联码表的sql的书写。

5.在mapper包下写一个mapper的扩展的包,与用代码生成工具生成的mapper文件同名。

6.在扩展的mapper文件中,编写关联码表的sql语句,并新增结果集resultmap,继承自动生成的mapper文件中的resultmap。

7.在Model包下,新建扩展的Model包,以及对应的扩展的Model类,使其继承原来的单表的Model类。

8.在扩展的Model类中,新增关联码表后要显示的字段,以及相应的set和get方法。

9.在action中将获取到的扩展的Model传给详情页面,进行显示即可。

代码实现

1.报表主页面

<td> <button type="button" class="btn btn-default" data-toggle="dialog"data-options="{id:'userOrderDetailDialog',url:'${ctx}/bus/userBillSerailAction/toDetails',type:'post',data:{id:${u.id}}}"data-width="900" data-height="600" data-id="dialog-user-role"data-title="订单详情">详情</button>
</td>

这是EasyUI的代码,效果是跳转到action,并将当前的记录的id传过去。

2.查看详情action

@RequestMapping(value="/toDetails")public ModelAndView toHandle(Integer id){ModelAndView mv=null;try{mv=new ModelAndView();BusUserBillserialExt billserial = billService.getUserBillDetailsById(id);  mv = new ModelAndView();mv.addObject("billserial", billserial);mv.setViewName(ModelAndViewConstants.USERBILL_EDIT_VIEW);LogService.getInstance(this).debug("加载详情成功:"+ModelAndViewConstants.SERVETYPE_MAIN_VIEW);}catch(Exception ex){LogService.getInstance(this).error("加载详情失败:" + ex.getMessage(), ex);mv = new ModelAndView(ModelAndViewConstants.ERROR_VIEW);}return mv;}

3.service

public BusUserBillserialExt getUserBillDetailsById(int id);

4.serviceImpl

@Overridepublic BusUserBillserialExt getUserBillDetailsById(int id) {return dao.getUserBillDetailsById(id);}

5.dao

 public BusUserBillserialExt getUserBillDetailsById(int id);

6.mapper

<resultMap id="BaseResultMapExt" type="**.model.ext.BusUserBillserialExt" extends="BaseResultMap"><result column="transactionTypeName" property="transactionTypeName" jdbcType="VARCHAR" /><result column="orderTypeName" property="orderTypeName" jdbcType="VARCHAR" /><result column="isUseRedPackageName" property="isUseRedPackageName" jdbcType="VARCHAR" /></resultMap><select id="getUserBillDetailsById" parameterType="java.util.Map" resultMap="BaseResultMapExt">selectbub.*,sc.CodeName  transactionTypeName,sc1.CodeName orderTypeNameFROMbus_user_billserial bubLEFT JOIN sys_code sc ON sc.codeType = "merchantTransactionType"AND sc.CodeValue = bub.TransactionTypeLEFT JOIN sys_code sc1 ON sc1.codeType = "orderType"AND sc1.CodeValue = bub.OrderTypewhere bub.Id = #{id}</select>

具体sql的写法参照:

https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/82896608

7.扩展Model

public class BusUserBillserialExt extends BusUserBillserial implements java.io.Serializable{private static final long serialVersionUID = 1L;//码表字段private String transactionTypeName;private String orderTypeName;private String isUseRedPackageName;//格式化日期private String transactionTimeChanged;public String getOrderTypeName() {return orderTypeName;}public void setOrderTypeName(String orderTypeName) {this.orderTypeName = orderTypeName;}public String getTransactionTypeName() {return transactionTypeName;}public void setTransactionTypeName(String transactionTypeName) {this.transactionTypeName = transactionTypeName;}public String getIsUseRedPackageName() {return isUseRedPackageName;}public void setIsUseRedPackageName(String isUseRedPackageName) {this.isUseRedPackageName = isUseRedPackageName;}public String getTransactionTimeChanged() {if(getTransactionTime()!=null) {transactionTimeChanged=DateUtil.formatDate(getTransactionTime(),"yyyy-MM-dd HH:mm:ss");}return transactionTimeChanged;}public void setTransactionTimeChanged(String transactionTimeChanged) {this.transactionTimeChanged = transactionTimeChanged;}}

8.详情页jsp

<td class="pass_width_ave_7_column">${billserial.orderTypeName}</td><td class="pass_width_ave_7_column">${billserial.transactionTypeName}</td>

SSM查看详情功能逻辑代码以及关联码表显示相关推荐

  1. JAVA实现查看详情功能_【JavaWeb】111:详情页面的实现

    今天是刘小爱自学Java的第111天. 感谢你的观看,谢谢你. 话不多说,开始今天的学习: 我们浏览网页时看到的数据无外乎两种:静态数据和动态数据. 静态数据是将数据给写死了,需要修改时得去改对应的某 ...

  2. 若依管理系统导出Excel时添加没有的列和关联码表显示中文进行导出

    场景 在使用若依后台管理系统时对于单表会自动生成导出相关的接口. 此时如果直接进行导出会导出相应的实体类中添加了 @Excel注解的属性. 自动生成导出接口示例: @GetMapping(" ...

  3. Android中通过ImageSwitcher实现相册滑动查看照片功能(附代码下载)

    场景 效果 注: 博客: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 获取编程相关电子书.教程推送与免费下载. 实现 将需要滚动查看的 ...

  4. 瑞吉外卖项目详细分析笔记及所有功能补充代码

    目录 项目刨析简介 技术栈 项目介绍 项目源码 一.架构搭建 1.初始化项目结构 2.数据库表结构设计 3.项目基本配置信息添加 公共字段的自动填充 全局异常处理类 返回结果封装的实体类 二.管理端业 ...

  5. Java旅游项目线路收藏_基于JavaWeb的旅游项目--详情功能

    文章目录 1.详情功能---界面展示 2.详情功能--后台代码 RouteServiceTest 扩展Route实体类 Seller.java RouteImg.java RouteService 查 ...

  6. 基于JavaWeb的旅游项目--详情功能

    文章目录 1.详情功能---界面展示 2.详情功能--后台代码 RouteServiceTest 扩展Route实体类 Seller.java RouteImg.java RouteService 查 ...

  7. SSM关联码表的多个字段显示中文流程以及sql写法

    场景描述: 实体Model中存放的是数字, 与数字对应的中文状态存放在码表中, 要关联码表在jsp页面来显示对应的中文状态. 码表字段: 要显示的效果: 代码思路: 1.编写Model类的扩展类,此扩 ...

  8. 微信小程序-000-签到功能-011-我报名过的活动-查看详情

    微信小程序-000-签到功能-011-我报名过的活动-查看详情 目录 一.wxml 二.js pages.joinsetact.joinsetact 一.wxml {{aid}} <button ...

  9. springboot根据id查看详情页功能(就是用id获取全部数据)

    xml: <select id="selectBfhtreswById" resultType="com.icbc.icbc.entity.Bfhtresw&quo ...

最新文章

  1. 前阿里程序员吐槽女友败家:开酒店必须400元起步,工资只有自己的1/3
  2. Vue用Cordova打包后的app自升级功能实现
  3. python如何判断字符串是否包含某些汉字_Python如何判断一个字符串是否包含指定子字符串...
  4. gin gorm插入数据
  5. C语言学习之分别用while、for 编写程序,计算1+2+3+......+100的值
  6. Java中的DatagramPacket与DatagramSocket的初步
  7. 计算机专业科普知识图文并茂,科普下计算机专业需要什么基础知识?
  8. 架构师必须掌握的 10 条设计原则
  9. 木兰已出现,木兰已死?
  10. Linux学习笔记010---CentOS7下安装FTP服务
  11. java compiler = null_Java Compiler command()方法
  12. PowerShell格式化显示(Format-Table Format-List)
  13. 力扣每日一刷-两数之和(暴力、双指针)
  14. dial tcp 10.96.0.1:443: i/o timeout
  15. TA进阶实例36(MMD pmx导入Unreal流程)
  16. 基于机器学习和序列信息的蛋白质亚线粒体定位预测算法研究
  17. 民宿管理系统课程设计_民宿室内设计毕业设计
  18. endnote x9打开闪退_Endnote X9 详细教程
  19. 【Canvas】JavaScript用Canvas制作美丽的对称图案
  20. OpenCV之视频截取

热门文章

  1. SpringBoot笔记:SpringBoot2.3集成SpringSession+nginx+redis实现session共享
  2. leetcode 高薪_LeetCode刷题实战69:x 的平方根
  3. sscanf fscanf函数格式化输入遇到\n问题
  4. android 底部通知,Android Fragment实现底部通知栏
  5. vb.net webclient 网络目录是否存在_牛眼IPO | 怡合达IPO申请待审核 产品目录被指涉嫌侵权...
  6. 和ur的区别_UR机械臂simscape正逆解仿真
  7. tomcat mysql eclipse_eclipse与tomcat及javaweb和mysql相关内容
  8. Android实现自动清空,android – 删除图像后自动刷新在gridview中不...
  9. linux安装socket.io,ubuntu – 如何在node.js npm服务器上查看socket.io版本
  10. 华为鸿蒙系统初探之HUAWEI DevEco Studio Hello World