论坛模块_版块管理1_增删改查

设计实体Forum.java

public class Forum {private Long id;private String name;private String Description;private int position;    //排序用的位置号public Long getId() {return id;}public void setId(Long id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getDescription() {return Description;}public void setDescription(String description) {Description = description;}public int getPosition() {return position;}public void setPosition(int position) {this.position = position;}
}

映射文件Forum.hbm.xml

<hibernate-mapping package="cn.itcast.oa.domain"><class name="Forum" table="itcast_forum"><id name="id"><generator class="native" /></id><property name="name"></property><property name="description"></property><property name="position"></property></class>
</hibernate-mapping>

加到hibernate.hbm.xml中

<mapping resource="cn/itcast/oa/domain/Forum.hbm.xml" />

建表

运行testSessionFactory测试方法

分析功能,实现功能

增删改查6个请求,上移下移2个请求

ForumManageAction.java

@Controller
@Scope("prototype")
public class ForumManageAction extends BaseAction<Forum>{/** 列表 */public String list() throws Exception {return "list";}/** 删除 */public String delete() throws Exception {return "toList";}/** 添加页面 */public String addUI() throws Exception {return "saveUI";}/** 添加 */public String add() throws Exception {return "toList";}/** 修改页面 */public String editUI() throws Exception {return "saveUI";}/** 修改 */public String edit() throws Exception {return "toList";}/** 上移 */public String moveUp() throws Exception {return "toList";}/** 下移 */public String moveDown() throws Exception {return "toList";}
}

创建所用到的页面

2个,新建,列表

配置

在ForumAction类上标注

struts.xml

<!-- 论坛:版块管理 --><action name="forumManage_*" class="forumManageAction" method="{1}"><result name="list">/WEB-INF/jsp/forumManageAction/list.jsp</result><result name="saveUI">/WEB-INF/jsp/forumManageAction/saveUI.jsp</result><result name="toList" type="redirectAction">forumManage_list</result></action>

准备service及实现类

ForumService.java

public interface ForumService extends DaoSupport<Forum>{
}

ForumServiceImpl.java

@Service
@Transactional
public class ForumServiceImpl extends DaoSupportImpl<Forum> implements ForumService{
}

在BaseAction.java中声明

  @Resourceprotected ForumService forumService;

填空实现ForumManageAction里面的功能

@Controller
@Scope("prototype")
public class ForumManageAction extends BaseAction<Forum>{/** 列表 */public String list() throws Exception {List<Forum> forumList = forumService.findAll();ActionContext.getContext().put("forumList", forumList);return "list";}/** 删除 */public String delete() throws Exception {forumService.delete(model.getId());return "toList";}/** 添加页面 */public String addUI() throws Exception {return "saveUI";}/** 添加 */public String add() throws Exception {forumService.save(model);return "toList";}/** 修改页面 */public String editUI() throws Exception {//准备回显的页面Forum forum = forumService.getById(model.getId());ActionContext.getContext().getValueStack().push(forum);//放在栈顶return "saveUI";}/** 修改 */public String edit() throws Exception {//从数据库中取出原对象Forum forum = forumService.getById(model.getId());//设置要修改的属性
        forum.setName(model.getName());forum.setDescription(model.getDescription());//更新到数据库
        forumService.update(forum);return "toList";}/** 上移 */public String moveUp() throws Exception {forumService.moveUp(model.getId());return "toList";}/** 下移 */public String moveDown() throws Exception {forumService.moveDown(model.getId());return "toList";}
}

新增的两个方法在ForumService接口中声明

public interface ForumService extends DaoSupport<Forum>{//上移,最上面的不能上移了void moveUp(Long id);//下移,最下面的不能下移了void moveDown(Long id);}

ForumServileImpl类中对两个方法进行实现,具体怎么实现下面在做

@Service
@Transactional
public class ForumServiceImpl extends DaoSupportImpl<Forum> implements ForumService{public void moveUp(Long id) {}public void moveDown(Long id) {}
}

写页面

第一拷贝源代码

第二include

第三替换路径

第四改具体内容

list.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head><title>版块列表</title><%@ include file="/WEB-INF/jsp/public/commons.jspf" %></head>
<body><div id="Title_bar"><div id="Title_bar_Head"><div id="Title_Head"></div><div id="Title"><!--页面标题--><img border="0" width="13" height="13" src="${pageContext.request.contextPath}/style/images/title_arrow.gif"/> 版块管理</div><div id="Title_End"></div></div>
</div><div id="MainArea"><table cellspacing="0" cellpadding="0" class="TableStyle"><!-- 表头--><thead><tr align="CENTER" valign="MIDDLE" id="TableTitle"><td width="250px">版块名称</td><td width="300px">版块说明</td><td>相关操作</td></tr></thead><!--显示数据列表--><tbody id="TableData" class="dataContainer" datakey="forumList"><s:iterator value="#forumList"><tr class="TableDetail1 template"><td>${name}&nbsp;</td><td>${description}&nbsp;</td><td><s:a action="forumManage_delete?id=%{id}" onclick="return delConfirm()">删除</s:a><s:a action="forumManage_editUI?id=%{id}" >修改</s:a><s:a action="forumManage_moveUp?id=%{id}" >上移</s:a><s:a action="forumManage_moveDown?id=%{id}" >下移</s:a></td></tr></s:iterator></tbody></table><!-- 其他功能超链接 --><div id="TableTail"><div id="TableTail_inside"><s:a action="forumManage_addUI"><img src="${pageContext.request.contextPath}/style/images/createNew.png" /></s:a></div></div>
</div><div class="Description">说明:<br />1,显示的列表按其sortOrder值升序排列。<br />2,可以通过上移与下移功能调整顺序。最上面的不能上移,最下面的不能下移。<br />
</div></body>
</html>

saveUI.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head><title>版块设置</title><%@ include file="/WEB-INF/jsp/public/commons.jspf" %>
</head>
<body><!-- 标题显示 -->
<div id="Title_bar"><div id="Title_bar_Head"><div id="Title_Head"></div><div id="Title"><!--页面标题--><img border="0" width="13" height="13" src="${pageContext.request.contextPath}/style/images/title_arrow.gif"/> 版块设置</div><div id="Title_End"></div></div>
</div><!--显示表单内容-->
<div id="MainArea"><s:form action="forumManage_%{id == null ? 'add' : 'edit'}"><s:hidden name="id"></s:hidden><div class="ItemBlock_Title1"><!-- 信息说明<DIV CLASS="ItemBlock_Title1"><IMG BORDER="0" WIDTH="4" HEIGHT="7" SRC="${pageContext.request.contextPath}/style/blue/images/item_point.gif" /> 版块信息 </DIV>  --></div><!-- 表单内容显示 --><div class="ItemBlockBorder"><div class="ItemBlock"><table cellpadding="0" cellspacing="0" class="mainForm"><tr><td width="100">版块名称</td><td><s:textfield name="name" cssClass="InputStyle" /> *</td></tr><tr><td>版块说明</td><td><s:textarea name="description" cssClass="TextareaStyle"></s:textarea></td></tr></table></div></div><!-- 表单操作 --><div id="InputDetailBar"><input type="image" src="${pageContext.request.contextPath}/style/images/save.png"/><a href="javascript:history.go(-1);"><img src="${pageContext.request.contextPath}/style/images/goBack.png"/></a></div></s:form>
</div><div class="Description">说明:<br />1,新添加的版块默认显示在最下面。<br />
</div></body>
</html>

测试

访问http://localhost:8080/ItcastOA/登录

论坛模块_版块管理2_实现上下移动1

之前设计实体时设计了一个position字段

1,查询时要按position的值排序。

2,添加时要指定position的值,要唯一。

3,上下移动就是与上面或下面的那个Forum交换position的值。

SELECT * FROM itcast_forum order by position;

select * from itcast_forum where position=(//查询位置2的信息

select max(position) from itcast_forum where position<3//找到小于位置3的最大那个位置,也就是2

);

select * from itcast_forum where position<7 order by position desc limit 0,1;

对应写法

Forum other = (Forum) getSession().createQuery(//我上面那个Forum"FROM Forum f WHERE f.position<? ORDER BY f.position DESC")//
                .setParameter(0, forum.getPosition())//
                .setFirstResult(0)//
                .setMaxResults(1)//
                .uniqueResult();

ForumServiceImpl.java

@Service
@Transactional
@SuppressWarnings("unchecked")
public class ForumServiceImpl extends DaoSupportImpl<Forum> implements ForumService{@Override//查询是给它加上排序功能public List<Forum> findAll() {return getSession().createQuery(//
                "FROM Forum f ORDER BY f.position")//
                .list();}@Overridepublic void save(Forum forum) {//保存super.save(forum);//设置position的值forum.setPosition(forum.getId().intValue());//转为int型
    }//上移和下移都是通过改变position的值实现的public void moveUp(Long id) {//找出相关的ForumForum forum = getById(id);//当前要移动的ForumForum other = (Forum) getSession().createQuery(//我上面那个Forum"FROM Forum f WHERE f.position<? ORDER BY f.position DESC")//
                .setParameter(0, forum.getPosition())//
                .setFirstResult(0)//
                .setMaxResults(1)//
                .uniqueResult();//最上面的不能上移if(other == null) {return;}//交换posution的值int temp = forum.getPosition();forum.setPosition(other.getPosition());other.setPosition(temp);//更新到数据库中,可以不写,因为对象现在是持久化状态
        getSession().update(forum);getSession().update(other);}public void moveDown(Long id) {//找出相关的ForumForum forum = getById(id);//当前要移动的ForumForum other = (Forum) getSession().createQuery(//我下面那个Forum"FROM Forum f WHERE f.position>? ORDER BY f.position ASC")//
                .setParameter(0, forum.getPosition())//
                .setFirstResult(0)//
                .setMaxResults(1)//
                .uniqueResult();//最下面的不能上移if(other == null) {return;}//交换posution的值int temp = forum.getPosition();forum.setPosition(other.getPosition());other.setPosition(temp);//更新到数据库中,可以不写,因为对象现在是持久化状态
        getSession().update(forum);getSession().update(other);}
}

最上面上移和最下面下移变灰色不能点

list.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head><title>版块列表</title><%@ include file="/WEB-INF/jsp/public/commons.jspf" %><style type="text/css">.disabled{color:gray;cursor:pointer;}</style>
</head>
<body><div id="Title_bar"><div id="Title_bar_Head"><div id="Title_Head"></div><div id="Title"><!--页面标题--><img border="0" width="13" height="13" src="${pageContext.request.contextPath}/style/images/title_arrow.gif"/> 版块管理</div><div id="Title_End"></div></div>
</div><div id="MainArea"><table cellspacing="0" cellpadding="0" class="TableStyle"><!-- 表头--><thead><tr align="CENTER" valign="MIDDLE" id="TableTitle"><td width="250px">版块名称</td><td width="300px">版块说明</td><td>相关操作</td></tr></thead><!--显示数据列表--><tbody id="TableData" class="dataContainer" datakey="forumList"><s:iterator value="#forumList" status="status"><tr class="TableDetail1 template"><td>${name}&nbsp;</td><td>${description}&nbsp;</td><td><s:a action="forumManage_delete?id=%{id}" onclick="return delConfirm()">删除</s:a><s:a action="forumManage_editUI?id=%{id}" >修改</s:a><!-- 最上面的不能上移 --><s:if test="#status.first"><span class="disabled"></span></s:if><s:else><s:a action="forumManage_moveUp?id=%{id}" >上移</s:a></s:else><!-- 最下面的不能下移 --><s:if test="#status.last"><span class="disable"></span></s:if><s:else><s:a action="forumManage_moveDown?id=%{id}" >下移</s:a></s:else>    </td></tr></s:iterator></tbody></table><!-- 其他功能超链接 --><div id="TableTail"><div id="TableTail_inside"><s:a action="forumManage_addUI"><img src="${pageContext.request.contextPath}/style/images/createNew.png" /></s:a></div></div>
</div><div class="Description">说明:<br />1,显示的列表按其sortOrder值升序排列。<br />2,可以通过上移与下移功能调整顺序。最上面的不能上移,最下面的不能下移。<br />
</div></body>
</html>

转载于:https://www.cnblogs.com/justdoitba/p/7821021.html

论坛模块_版块管理_增删改查实现上下移动相关推荐

  1. MySQL学习总结(2) --- 数据表管理(增删改查)、使用DQL查询数据(SELECT)

    MySQL学习总结(2) - 数据表管理(增删改查).使用DQL查询数据(SELECT) 1. 数据管理(增删改查) 数据库数据管理方法: a.通过SQLyog等管理工具管理数据库数据 b. 通过DM ...

  2. java部门管理_系统管理模块_部门管理_实现基本的增删改查功能

    系统管理模块_部门管理1_实现基本的增删改查功能 先不考虑上级部门 设计实体.表 1.设计实体 Department.java public classDepartment {privateLong ...

  3. mysql8中怎么增删一列_关于MySQL的增删改查知识

    增删改查基础操作 1.创建查询数据库:mysql>create database web; mysql>show databases; 2.创建数据表: #选择要使用的数据库:mysql& ...

  4. java 学生信息的增删改查_学生信息的增删改查(java)

    学生信息的增删改查 注意:此处用到的是access数据库. 运行后效果如图: 代码如下: package example; import java.awt.*; import java.awt.eve ...

  5. mysql增错误_使用MySQL练习增删改查时因为版本问题出现连接错误

    使用MySQL练习增删改查时出现连接错误,错误提示如下: 2020-02-19 19:53:51.088 ERROR 16328 --- [reate-249798694] com.alibaba.d ...

  6. 处理增删改_实现数据的增删改查

    一,程序要求 对后台的数据(以一个文件为例)实现简单的增删改查功能,语句的语法为提示信息的示例 二,代码部分 #! /usr/bin/env python# -*- coding: utf-8 -*- ...

  7. 使用SpringBoot一小时快速搭建一个简单后台管理(增删改查)(超详细教程)

    最近也是临近期末了,各种的期末大作业,后台管理也是很多地方需要用到的,为了方便大家能快速上手,快速搭建一个简单的后台管理,我花了两天时间整理了一下 我会从0开始介绍,从数据库的设计到前端页面的引入最后 ...

  8. javaweb增删改查实例_JavaWeb图像可视化管理系统之后台搭建(二)用户管理与增删改查(内含代码)...

    上一篇文章中,我们介绍了环境配置与后台设计,对于不了解的同学,可以看这个链接 CharlesDDDD:JavaWeb图像可视化管理系统之后台搭建(一)环境配置与后台设计​zhuanlan.zhihu. ...

  9. 高度平衡二叉树的构建_平衡二叉树建立及其增删改查(JAVA)

    平衡二叉树:指的是左右子树高度差的绝对值不超过一的二叉排序树. 主要思路:1.用左高度跟右高度代替平衡因子,大于1进行L~调整,小于-1进行R~调整 2.每次插入都通过递归计算一次各结点高度,然后进行 ...

最新文章

  1. 项目实践|如何在较暗环境进行人脸检测?
  2. MySQL--5子查询与连接小结
  3. linux目录挂载到内存,Linux中内存挂载到目录下
  4. redis-redisTemplate模糊匹配删除
  5. jx8net一定在所有的方方面面都更坚强更勇敢了吧
  6. stm32 系统进入stop模式_STM32低功耗控制心得体会
  7. REINFORCE和Reparameterization Trick
  8. 台式计算机性能与种类,最新台式机处理器性能排行榜
  9. 打开ISEIP核里面的datesheet失败,显示C:\Program Files (x86) internet explorer\iexplore.exe http:\\www.xilinx.com
  10. 正定矩阵、二次型与椭圆椭球
  11. 谈谈大数据时代企业如何进行数据治理体系建设
  12. 在Ubuntu中使用Tomcat的小tips_codestorm_新浪博客
  13. r语言中,如何将分类变量化为虚拟变量
  14. 如何撤销命令make install的安装结果,或者如何卸载Linux 库library ?
  15. 清华计算机专业考研经验谈
  16. XMLHttpRequest.send()
  17. 基于动态时间规整(DTW)的孤立字语音识别
  18. Linux上传输大于4G的文件,sz命令用不了
  19. 临终的悲剧——————抢救最后一口气
  20. 高通Android手机软件开发培训

热门文章

  1. 201671010444 夏向明 词频统计软件项目报告
  2. 【动画】当我们在读写Socket时,我们究竟在读写什么?
  3. 从源码分析常见的基于Array的数据结构动态扩容机制
  4. [20170203]dg磁盘空间不足的处理.txt
  5. 转: android apk 防止反编译技术(1~5连载)
  6. openstack云计算实践-老男孩架构师课程教案笔记分享
  7. 6、Cocos2dx 3.0游戏开发找小三之游戏的基本概念
  8. Respond.js让IE6-8支持CSS3 Media Query
  9. ATT全球网络运营中心GNOC
  10. yolov 论文发表在什么期刊上_论文发表期刊发表论文研究方法