SSM查看详情功能逻辑代码以及关联码表显示
场景
在后台管理中,有些报表要显示的字段很多,当进入报表的主页面时,往往只显示部分重要的内容,然后在每一条记录的后面添加一个查看详情按钮,通过点击详情按钮,跳转到显示所有信息的页面。
有时一张报表中存取的字段为数字,比如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查看详情功能逻辑代码以及关联码表显示相关推荐
- JAVA实现查看详情功能_【JavaWeb】111:详情页面的实现
今天是刘小爱自学Java的第111天. 感谢你的观看,谢谢你. 话不多说,开始今天的学习: 我们浏览网页时看到的数据无外乎两种:静态数据和动态数据. 静态数据是将数据给写死了,需要修改时得去改对应的某 ...
- 若依管理系统导出Excel时添加没有的列和关联码表显示中文进行导出
场景 在使用若依后台管理系统时对于单表会自动生成导出相关的接口. 此时如果直接进行导出会导出相应的实体类中添加了 @Excel注解的属性. 自动生成导出接口示例: @GetMapping(" ...
- Android中通过ImageSwitcher实现相册滑动查看照片功能(附代码下载)
场景 效果 注: 博客: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 获取编程相关电子书.教程推送与免费下载. 实现 将需要滚动查看的 ...
- 瑞吉外卖项目详细分析笔记及所有功能补充代码
目录 项目刨析简介 技术栈 项目介绍 项目源码 一.架构搭建 1.初始化项目结构 2.数据库表结构设计 3.项目基本配置信息添加 公共字段的自动填充 全局异常处理类 返回结果封装的实体类 二.管理端业 ...
- Java旅游项目线路收藏_基于JavaWeb的旅游项目--详情功能
文章目录 1.详情功能---界面展示 2.详情功能--后台代码 RouteServiceTest 扩展Route实体类 Seller.java RouteImg.java RouteService 查 ...
- 基于JavaWeb的旅游项目--详情功能
文章目录 1.详情功能---界面展示 2.详情功能--后台代码 RouteServiceTest 扩展Route实体类 Seller.java RouteImg.java RouteService 查 ...
- SSM关联码表的多个字段显示中文流程以及sql写法
场景描述: 实体Model中存放的是数字, 与数字对应的中文状态存放在码表中, 要关联码表在jsp页面来显示对应的中文状态. 码表字段: 要显示的效果: 代码思路: 1.编写Model类的扩展类,此扩 ...
- 微信小程序-000-签到功能-011-我报名过的活动-查看详情
微信小程序-000-签到功能-011-我报名过的活动-查看详情 目录 一.wxml 二.js pages.joinsetact.joinsetact 一.wxml {{aid}} <button ...
- springboot根据id查看详情页功能(就是用id获取全部数据)
xml: <select id="selectBfhtreswById" resultType="com.icbc.icbc.entity.Bfhtresw&quo ...
最新文章
- 前阿里程序员吐槽女友败家:开酒店必须400元起步,工资只有自己的1/3
- Vue用Cordova打包后的app自升级功能实现
- python如何判断字符串是否包含某些汉字_Python如何判断一个字符串是否包含指定子字符串...
- gin gorm插入数据
- C语言学习之分别用while、for 编写程序,计算1+2+3+......+100的值
- Java中的DatagramPacket与DatagramSocket的初步
- 计算机专业科普知识图文并茂,科普下计算机专业需要什么基础知识?
- 架构师必须掌握的 10 条设计原则
- 木兰已出现,木兰已死?
- Linux学习笔记010---CentOS7下安装FTP服务
- java compiler = null_Java Compiler command()方法
- PowerShell格式化显示(Format-Table Format-List)
- 力扣每日一刷-两数之和(暴力、双指针)
- dial tcp 10.96.0.1:443: i/o timeout
- TA进阶实例36(MMD pmx导入Unreal流程)
- 基于机器学习和序列信息的蛋白质亚线粒体定位预测算法研究
- 民宿管理系统课程设计_民宿室内设计毕业设计
- endnote x9打开闪退_Endnote X9 详细教程
- 【Canvas】JavaScript用Canvas制作美丽的对称图案
- OpenCV之视频截取
热门文章
- SpringBoot笔记:SpringBoot2.3集成SpringSession+nginx+redis实现session共享
- leetcode 高薪_LeetCode刷题实战69:x 的平方根
- sscanf fscanf函数格式化输入遇到\n问题
- android 底部通知,Android Fragment实现底部通知栏
- vb.net webclient 网络目录是否存在_牛眼IPO | 怡合达IPO申请待审核 产品目录被指涉嫌侵权...
- 和ur的区别_UR机械臂simscape正逆解仿真
- tomcat mysql eclipse_eclipse与tomcat及javaweb和mysql相关内容
- Android实现自动清空,android – 删除图像后自动刷新在gridview中不...
- linux安装socket.io,ubuntu – 如何在node.js npm服务器上查看socket.io版本
- 华为鸿蒙系统初探之HUAWEI DevEco Studio Hello World