十六、市场活动:查看市场活动明细(一)

news2024/9/24 9:18:05

  功能需求

点击市场活动名称链接,跳转到明细页面,查看市场活动明细

           -市场活动的基本信息

           -市场活动下所有的备注信息

功能分析


流程图

 代码实现

一、ActivityMapper

1.ActivityMapper接口

    /**
     * 点击名称,查看市场详细
     */
    Activity selectActivityForDetailById(String id);

2.ActivityMapper映射文件,根据市场活动id查询Activity

 <select id="selectActivityForDetailById" resultMap="BaseResultMap">
        select a.id,
               u1.name as owner,
               a.name,
               a.start_date,
               a.end_date,
               a.cost,
               a.description,
               a.create_time,
               u2.name as create_by,
               a.edit_time,
               u3.name as edit_by
        from tbl_activity a
                 join tbl_user u1 on a.owner = u1.id
                 join tbl_user u2 on a.create_by = u2.id
                 left join tbl_user u3 on a.edit_by = u3.id
        where a.id = #{id}
 
 </select>

二、ActivityService

	/**
	 * 点击名称,查看市场详细
	 */
	Activity queryActivityForDetail(String id);
	@Override
	public Activity queryActivityForDetail(String id) {
		return activityMapper.selectActivityForDetailById(id);
	}

三、ActivityController

	@RequestMapping("/workbench/activity/ActivityDetail.do")
	public String ActivityDetail(String id,HttpServletRequest request){
		// 调用activityService获取市场活动详细
		Activity activity = activityService.queryActivityForDetail(id);
		// 调用activityRemarkService,获取评论信息
		List<ActivityRemark> activityRemarksList = activityRemarkService.queryActivityRemarkByActId(id);
		// 保存在请求域
		request.setAttribute("activity",activity);
		request.setAttribute("activityRemarksList",activityRemarksList);
		return "workbench/activity/detail";
	}

四、前端

1.index.jsp,给活动名称添加单击事件,参数是id 

2.detail.jsp,

①详细信息

通过${域名称.属性}

如${activity.id}等价于${requestScope.get("activity").id}

<div style="position: relative; top: -70px;">
    <div style="position: relative; left: 40px; height: 30px;">
        <div style="width: 300px; color: gray;">所有者</div>
        <div style="width: 300px;position: relative; left: 200px; top: -20px;">
            <b>${requestScope.get("activity").owner}</b></div>
        <div style="width: 300px;position: relative; left: 450px; top: -40px; color: gray;">名称</div>
        <div style="width: 300px;position: relative; left: 650px; top: -60px;">
            <b>${requestScope.get("activity").name}</b></div>
        <div style="height: 1px; width: 400px; background: #D5D5D5; position: relative; top: -60px;"></div>
        <div style="height: 1px; width: 400px; background: #D5D5D5; position: relative; top: -60px; left: 450px;"></div>
    </div>

    <div style="position: relative; left: 40px; height: 30px; top: 10px;">
        <div style="width: 300px; color: gray;">开始日期</div>
        <div style="width: 300px;position: relative; left: 200px; top: -20px;">
            <b>${requestScope.get("activity").startDate}</b></div>
        <div style="width: 300px;position: relative; left: 450px; top: -40px; color: gray;">结束日期</div>
        <div style="width: 300px;position: relative; left: 650px; top: -60px;">
            <b>${requestScope.get("activity").endDate}</b></div>
        <div style="height: 1px; width: 400px; background: #D5D5D5; position: relative; top: -60px;"></div>
        <div style="height: 1px; width: 400px; background: #D5D5D5; position: relative; top: -60px; left: 450px;"></div>
    </div>
    <div style="position: relative; left: 40px; height: 30px; top: 20px;">
        <div style="width: 300px; color: gray;">成本</div>
        <div style="width: 300px;position: relative; left: 200px; top: -20px;">
            <b>${requestScope.get("activity").cost}</b></div>
        <div style="height: 1px; width: 400px; background: #D5D5D5; position: relative; top: -20px;"></div>
    </div>
    <div style="position: relative; left: 40px; height: 30px; top: 30px;">
        <div style="width: 300px; color: gray;">创建者</div>
        <div style="width: 500px;position: relative; left: 200px; top: -20px;">
            <b>${requestScope.get("activity").createBy}&nbsp;&nbsp;</b><small
                style="font-size: 10px; color: gray;">${requestScope.get("activity").createTime}</small></div>
        <div style="height: 1px; width: 550px; background: #D5D5D5; position: relative; top: -20px;"></div>
    </div>
    <div style="position: relative; left: 40px; height: 30px; top: 40px;">
        <div style="width: 300px; color: gray;">修改者</div>
        <div style="width: 500px;position: relative; left: 200px; top: -20px;"><b>${requestScope.get("activity").editBy}&nbsp;&nbsp;</b><small
                style="font-size: 10px; color: gray;">${requestScope.get("activity").editTime}</small></div>
        <div style="height: 1px; width: 550px; background: #D5D5D5; position: relative; top: -20px;"></div>
    </div>
    <div style="position: relative; left: 40px; height: 30px; top: 50px;">
        <div style="width: 300px; color: gray;">描述</div>
        <div style="width: 630px;position: relative; left: 200px; top: -20px;">
            <b>
                ${requestScope.get("activity").description}
            </b>
        </div>
        <div style="height: 1px; width: 850px; background: #D5D5D5; position: relative; top: -20px;"></div>
    </div>
</div>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/430974.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

相量的加减乘除计算

相量的加减乘除计算 矢量是物理学中的术语&#xff0c;是指具有大小&#xff08;magnitude&#xff09;和方向的量。如速度、加速度、力等等就是这样的量。向量是数学中的术语&#xff0c;也称为欧几里得向量、几何向量、矢量。与向量对应的量叫做数量&#xff0c;在物理学中称…

二叉树基础概念

1.二叉树种类 1.1 满二叉树 满二叉树&#xff1a;如果一棵二叉树只有度为 0 0 0 的结点和度为 2 2 2 的结点&#xff0c;并且度为0的结点在同一层上&#xff0c;则这棵二叉树为满二叉树。 如图所示&#xff1a; 这棵二叉树为满二叉树&#xff0c;也可以说深度为 k k k&…

自动驾驶企业面临哪些数据安全挑战?

近期&#xff0c;“特斯拉员工被曝私下分享用户隐私”不可避免地成了新闻热点&#xff0c;据说连马斯克也不能幸免。 据相关媒体报道&#xff0c;9名前特斯拉员工爆料在2019年至2022年期间&#xff0c;特斯拉员工通过内部消息系统私下分享了一些车主车载摄像头记录的隐私视频和…

JVM|为对象分配内存空间的流程

1. Eden是否能装下新对象&#xff1f; 1.1 如果可以&#xff0c;则装入新对象&#xff1b; 1.2 如果不可以&#xff0c;则发动minor gc&#xff1b; 2. minor gc后Eden空间是否能装下新对象&#xff1f; 2.1 如果可以&#xff0c;装入新对象&#xff1b; 2.2 如果不可以&#…

长安链引入全新身份认证体系IBC:突破公钥不可理解的限制

近日&#xff0c;未来区块链与隐私计算高精尖创新中心研究团队为长安链带来了一套基于国密SM9算法的全新标识身份认证体系IBC&#xff08;Identity-Based Cryptography&#xff09;。该项成果融合标识密码和现代身份管理体系&#xff0c;打破区块链数字身份监管难、管理难、联通…

优维低代码:第三方接口接入

优维低代码技术专栏&#xff0c;是一个全新的、技术为主的专栏&#xff0c;由优维技术委员会成员执笔&#xff0c;基于优维7年低代码技术研发及运维成果&#xff0c;主要介绍低代码相关的技术原理及架构逻辑&#xff0c;目的是给广大运维人提供一个技术交流与学习的平台。 连载…

淌入客户市场的“深水区”,锐捷云桌面体验再升级

作者 | 曾响铃 文 | 响铃说 现阶段&#xff0c;云桌面的普惠价值随着行业应用的深化正在不断突显。 以教育为例&#xff0c;教育信息化建设已经跨过了从无到有的阶段&#xff0c;目前正面临着如何降本增效的问题。云桌面的应用&#xff0c;正在有效地解决这个问题。 在响铃…

Java基础:数据类型会考什么?

本文列举一些关于Java基础的数据类型相关考点,方便以后复习查看 Java 中的哪几种基本数据类型了解么&#xff1f;它们的默认值和占用空间大小知道不? 说说这八种数据类型对应的包装类型 基本类型和包装类型的区别&#xff1f; int 和 Integer 的区别 为什么要有包装类型 ? …

Parallels Desktop for Mac 适用于苹果 macOS 的 PD 虚拟机(安装使用详细教程)

简介 Parallels Desktop for Mac 是一款适用于苹果 macOS 操作系统的虚拟机软件&#xff0c;可以让用户在 Mac 上运行 Windows、Linux 等其他操作系统&#xff0c;同时也可以在虚拟机中安装其他软件和应用程序。Parallels Desktop for Mac 还提供了许多实用的功能&#xff0c;…

窗口看门狗(WWDG)实验

窗口看门狗 窗口看门狗&#xff08;WWDG &#xff09;通常被用来监测由外部干扰或不可预见的逻辑条件造成的应用程序背离正常的运行序列而产生的软件故障。 除非递减计数器的值在 T6 位&#xff08; WWDG -->CR 的第六位&#xff09;变成 0 前被刷新&#xff0c;看门狗电路…

ROS小乌龟话题改写--话题发布--话题订阅

创建小乌龟 roscore rosrun turtlesim turtlesim_node rosrun turtlesim turtle_teleop_key2&#xff1a;图显示&#xff1a; rqt_graphtest02_sub_pose 3&#xff1a;通过命令显示话题名消息信息 方法一获得&#xff1a; rostopic info /turtle1/cmd_vel方法二获得&#…

Linux 提权学习

提权的目的是获取 root 权限 root 权限可获取 shadow 文件中的密码 Hash&#xff0c;若内网环境中存在「账户/密码复用」的情况&#xff0c;可用于横向扩展 暴力破解 suid 提权 内核漏洞提权 定时任务提权 sudo 提权 第三方服务提权&#xff08;docker、mysql、redis、NFS提权…

量子退火Python实战(4):PyQUBO使用攻略 MathorCup2023加油!

文章目录 前言一、约束部分的QUBO怎么求&#xff1f;二、PyQUBO的输出结果怎么不是QUBO矩阵&#xff1f;三、我的建模太复杂了&#xff0c;可以不用PyQUBO吗&#xff1f;四、怎么构建sum&#xff08;x_1...x_i&#xff09; K的约束&#xff1f;总结 前言 提示&#xff1a;本教…

3DEXPERIENCE MODSIM产品前期概念结构快速开发方案(上) | 达索系统百世慧®

基于3DEXPERIENCE单一数据源、实时多专业协同平台&#xff1b;传统CATIA建模附加全新CATIA柔性快速建模技术&#xff1b;CATIA原生概念建模仿真一体化模型&#xff1b;一模两用&#xff0c;快速建模与变更、多学科快速验证与自动优化、支持快速概念方案决策&#xff1b;仿真效率…

快手社招Java后端开发岗面试,被问麻了

社招面试是基于你的工作项目来展开问的&#xff0c;比如你项目用了 xxx 技术&#xff0c;那么面试就会追问你项目是怎么用 xxx 技术的&#xff0c;遇到什么难点和挑战&#xff0c;然后再考察一下这个 xxx 技术的原理。 今天就分享一位快手社招面经&#xff0c;岗位是后端开发&…

日常记录:天梯赛练习集L1-044 稳赢

题目&#xff1a; 大家应该都会玩“锤子剪刀布”的游戏&#xff1a;两人同时给出手势&#xff0c;胜负规则如图所示&#xff1a; 现要求你编写一个稳赢不输的程序&#xff0c;根据对方的出招&#xff0c;给出对应的赢招。但是&#xff01;为了不让对方输得太惨&#xff0c;你需…

软件测试能干多久?测试员能干到多大年龄?

测试员可以工作多少年?大多数人认为软件测试是吃青春饭的工作。只能干到30岁&#xff0c;最长可达35岁。我经常听到这样的话&#xff0c;都让人倍感压力。今天&#xff0c;我们来谈谈这个老话题… 软件测试能干多久&#xff1f; 软件测试并没有明确的职业寿命限制&#xff…

【高项】项目的概念,项目管理基础与立项管理

【高项】项目的概念&#xff0c;项目管理基础与立项管理 文章目录1、什么是项目&#xff1f;项目的概念2、项目管理知识体系2.1 组织结构对项目的影响2.2 信息系统项目的生命周期2.3 单个项目的管理过程3、立项管理3.1 熟悉立项的流程&#xff08;申请书->可行性->评估-&…

【《C Primer Plus》读书笔记】第16章:C预处理器和C库

【《C Primer Plus》读书笔记】第16章&#xff1a;C预处理器和C库16.1 翻译程序的第一步16.2 明示常量&#xff1a;#define16.2.1 记号16.2.2 重定义常量16.3 在#define中使用参数16.3.1 用宏参数创建字符串&#xff1a;#运算符16.3.2 预处理器黏合剂&#xff1a;##运算符16.3.…

@SpringBootApplication详细分析

如下图 SpringBootApplication是springboot项目启动类的注解&#xff0c;也是程序的入口,本文就是具体解析一下这个注解到底做了什么 一.SpringBootApplication的构成 1.这个注解是一个组合注解&#xff0c;他是有三个注解合成的&#xff0c;对应图中的123步&#xff0c;而这三…