`
L.G.Alexander
  • 浏览: 158012 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

9、bug修正及删除功能实现

阅读更多
bug修正及删除功能实现
1、log4j-1.2.15版本bug,建议不要使用它,而建议使用log4j-1.2.14
引用
After upgrading from 1.2.14 to 1.2.15 the following error show up during
shutdown:
log4j:ERROR LogMananger.repositorySelector was null likely due to error in
class
reloading, using NOPLoggerRepository.

No errors at all with 1.2.14

This probably is related to bug 40212

2、对应${org.parent.name},当org为顶级机构时候回报错空指针异常,修改
Organization.hbm.xml添加 not-found="ignore":
<many-to-one column="pid" access="field" name="parent" not-found="ignore"/>

Organization.java添加not-found="ignore":
      
/**
	 * @hibernate.many-to-one
	 * column="pid" not-found="ignore"
	 */
	private Organization parent;
index.jsp修改
<td align="center" vAlign="center">
	<c:out value="${org.parent.name}"></c:out>
</td>


<td align="center" vAlign="center">
<c:if test="${!empty org.parent.name}">
	<c:out value="${org.parent.name}"></c:out>
</c:if>
</td>

3、添加机构的唯一编号,修改OrgManagerImpl.java的addOrg(Organization org, int parentId)方法为:
    
public void addOrg(Organization org, int parentId) {
        if(parentId != 0)
        	org.setParent((Organization)getHibernateTemplate().load(Organization.class, parentId));
       getHibernateTemplate().save(org);
       //TODO 设置机构的唯一编号
       org.setSn(org.getParent() == null ? "" + org.getId(): org.getParent().getId() + "_" + org.getId());
       getHibernateTemplate().update(org);
	}
4、完成删除功能:
public_del_success.jsp文件:
<%@ page language="java" contentType="text/html; charset=GB18030"
    pageEncoding="GB18030"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>删除记录成功</title>
<script type="text/javascript">
function closewindow(){
	window.returnValue = true;
	window.close();
}
function clock(){
	i = i -1;
	if(document.getElementById("info")){
		document.getElementById("info").innerHTML = "本窗口将在"+i+"秒后自动关闭";
	}
	if(i > 0)
		setTimeout("clock();",1000);
	else
		closewindow();
}

var i = 4;
clock();

</script>
</head>
<body>
<center>
	删除记录成功!<p>
	<div id="info">本窗口将在3秒后自动关闭</div>
	<input type="button" value="关闭窗口" onclick="closewindow();">
</center>
</body>
</html>

public_update_success.jsp文件:
<%@ page language="java" contentType="text/html; charset=GB18030"
    pageEncoding="GB18030"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>更新记录成功</title>
<script type="text/javascript">
function closewindow(){
	if(window.opener){
		window.opener.location.reload(true);
		window.close();
	}
}
function clock(){
	i = i -1;
	if(document.getElementById("info")){
		document.getElementById("info").innerHTML = "本窗口将在"+i+"秒后自动关闭";
	}
	if(i > 0)
		setTimeout("clock();",1000);
	else
		closewindow();
}

var i = 4;
clock();

</script>
</head>
<body>
<center>
	更新记录成功!<p>
	<div id="info">本窗口将在3秒后自动关闭</div>
	<input type="button" value="关闭窗口" onclick="closewindow();">
</center>
</body>
</html>

update_add_succes.jsp文件
<%@ page language="java" contentType="text/html; charset=GB18030"
    pageEncoding="GB18030"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>添加记录成功</title>
<script type="text/javascript">
function closewindow(){
	if(window.opener){
		window.opener.location.reload(true);
		window.close();
	}
}
function clock(){
	i = i -1;
	if(document.getElementById("info")){
		document.getElementById("info").innerHTML = "本窗口将在"+i+"秒后自动关闭";
	}
	if(i > 0)
		setTimeout("clock();",1000);
	else
		closewindow();
}

var i = 4;
clock();

</script>
</head>
<body>
<center>
	添加记录成功!<p>
	<div id="info">本窗口将在3秒后自动关闭</div>
	<input type="button" value="关闭窗口" onclick="closewindow();">
</center>
</body>
</html>

DelOrgAction.java文件
package com.oa.action;

import com.oa.manager.OrgManager;
import com.opensymphony.xwork2.ActionSupport;

public class DelOrgAction extends ActionSupport {
	private OrgManager orgManager;
	private int id;

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public void setOrgManager(OrgManager orgManager) {
		this.orgManager = orgManager;
	}
	@Override
	public String execute() throws Exception {
		orgManager.deleteOrg(id);
		return "del_success";
	}
}

修改OrgManagerImpl.java的deleteOrg(int orgId)方法为:
    
 public void deleteOrg(int orgId) {
		Organization org = (Organization) getHibernateTemplate().load(Organization.class, orgId);
		if(org.getChildren().size() > 0)
			throw new RuntimeException("有子机构存在,不允许删除!");
		getHibernateTemplate().delete(getHibernateTemplate().load(Organization.class, orgId));
	}
修改index.jsp文件中
<a href="#" onclick="del('del.do?mentod=del&id=${org.id }');">删除</a></td>


<a href="#" onclick="del('del.action?id=${org.id }');">删除</a></td>

修改struts.xml文件为:
<package name="struts2" namespace="/" extends="struts-default">
        <global-results>
            <result name="add_success">/common/pub_add_success.jsp</result>
            <result name="del_success">/common/pub_del_success.jsp</result>
            <result name="update_success">/common/pub_update_success.jsp</result>
        </global-results>
        <action name="Login" class="loginAction">
            <result name="success">/result.jsp</result>
            <result name="input">/login.jsp</result>
        </action>
        
        <action name="org" class="orgAction">
            <result name="success">/org/index.jsp</result>
        </action>
        
        <action name="add_input" class="orgAction" method="add">
            <result name="success">/org/add_input.jsp</result>
        </action>
        
        <action name="add" class="addAction">
            <result name="success">/common/pub_add_success.jsp</result>
        </action>
        
        <action name="del" class="delAction"></action>
    </package>
applicationContext-actions.xml文件中添加:
   
<bean id="addAction" class="com.oa.action.AddOrgAction">
        <property name="orgManager" ref="orgManager"/>
    </bean>
    
    <bean id="delAction" class="com.oa.action.DelOrgAction">
        <property name="orgManager" ref="orgManager"/>
    </bean>


启动tomcat,测试!








分享到:
评论

相关推荐

    shapelib_1_2_10 Bug修正版

    2. **写入Shapefile**: 支持创建新的Shapefile或向现有Shapefile添加、修改和删除几何对象及属性信息。 3. **几何操作**: 包括计算几何对象的面积、长度、边界、交集、并集、差集等。 4. **投影转换**: 虽然`...

    微信图片解密预览和删除(含源码以及bug修正)

    本项目“微信图片解密预览和删除”专注于解决这个问题,提供了源代码和bug修正,帮助用户更有效地管理和清理微信占用的磁盘空间。 首先,我们来看“微信dat格式的图片”。这是微信为了保护用户隐私和数据安全,将...

    gridcontrol显示行号修正存在分组BUG

    总结来说,修复"gridcontrol显示行号修正存在分组BUG"涉及了理解GridControl的分组功能、行号的逻辑计算以及事件驱动编程的概念。通过深入研究和实践,我们可以改进代码,使GridControl在分组模式下依然能够准确、...

    数据结构 广义表的c++实现(链表)[!注意!描述中有一个bug要修正]

    实现的功能包括复制,拼接,删除,求深度,判断相等. 所有的功能都用递归实现,写完之后发现头有点大了.. [BUG:'GenList.cpp文件中,在Copy函数内,首先要调用Clear(*this), 不然对象原来的内存空间将泄漏]

    功能强大的bbs论坛

    - 强化标签功能:单个标签使用统计、标签不再仅仅关联于主题而是与某一帖子对应、增加标签推荐功能、修正标签重复时重复统计BUG、增加单个标签长度的判断。 - 优化搜索页面,搜索出某类主题之后,可批量将其删除,...

    仿Zaker首页的拖动排序类(修正了部分bug)

    在iOS开发中,实现类似Zaker首页的拖动排序功能是一项常见的需求,它允许用户通过手势自由调整列表中元素的顺序。本项目提供了一个修复了若干bug的拖动排序类,特别针对iOS5进行了优化,提高了用户体验。让我们深入...

    商用版本文本编辑器DotNetTextBoxV6.0.8Source 源码

    5)修正上传文件、上传模板及上传媒体文件功能中文件无法删除的BUG! 6)调整了控件弹出窗口的方式,部分功能的模式窗口转换为Div+CSS的窗口! 7)调整pathtype属性默认值为AbsoluteFull(绝对全路径)! 8)增加对VS2008的...

    DotNetTextBox V6.0.10 商业版 下载 (已知最新)

    5)修正上传文件、上传模板及上传媒体文件功能中文件无法删除的BUG! 6)调整了控件弹出窗口的方式,部分功能的模式窗口转换为Div+CSS的窗口! 7)调整pathtype属性默认值为AbsoluteFull(绝对全路径)! 8)增加对VS2008的...

    kindeditor + video修正版

    这个“kindeditor + video修正版”应该是针对KindEditor原有版本的一个修复更新,特别是针对视频功能的改进。在原版本中可能存在的一个bug是视频不能被正确地锁定在特定位置,这可能会影响到用户的编辑体验。例如,...

    手机 pdf 阅读器

    暂时删除了播放功能及网络相关的功能,由于以上两项功能一直没有能稳定下来,故暂时删除 增强了ZIP功能,支持带文件夹结构的ZIP/JAR文件 (对于大部分JAR电子书都,可以从文件管理器中找到非.class结尾的文件,并且...

    DotNetTextBox所见即所得编辑器控件 v3.3.1

    4) 改进了转换相对及绝对路径的算法,此算法除了修正了上一版本无法正确转换全部路径的BUG外,还修正了以前算法在非IE浏览器下可能引起的脚本停止响应的严重BUG。 5) 修改Word文档导入功能生成的图片文件名为...

    C#家庭收支管理,带助记码,计算器,修正了Bug

    "修正了Bug"表明开发者已经对软件进行了调试和优化,解决了程序运行中的问题,提高了软件的稳定性和用户体验。这可能涉及到修复数据一致性错误、界面显示问题或者逻辑错误等。 7. **版本控制与发布** 开发过程中...

    XueTr0.24 修正版 安全工具

    修正结束进程并且删除文件的问题 本工具目前初步实现如下功能: 1.进程、线程、进程模块、进程窗口信息查看,杀进程、杀线程、卸载模块等功能 2.内核驱动模块查看,支持内核驱动模块的内存拷贝 3.SSDT、Shadow ...

    flex 第一步的bug

    ### Flex 第一步的Bug修正与知识点解析 #### 标题解析 标题“flex 第一步的bug”明确指出了本文档的主要内容是针对Flex技术初学者教程中存在的错误进行修正。Flex是一种用于构建高度交互式的Web应用的技术,其核心...

    文件坏了,不要下.可视化文件管理c++ builder版源代码 (已修正bug)

    在“文件管理系统”这个项目中,我们看到开发者利用C++ Builder的特性实现了文件的基本操作,如新建、删除、编辑、复制以及查看属性等功能。 文件管理系统的核心功能可以分为以下几个方面: 1. **文件新建**:在...

    无名网络整站程序修正版

    [改进] 论坛功能大幅度的增加和改进,批量删除,上传文件等; [改进] 下载增加图片和关键字,增强其功能,改善版面; [改进] 后台管理,主要有可在后台设定网站配置参数等; [改进] 本站修改的UBB功能再次...

    Bug等级划分借鉴.pdf

    - **Urgent(紧急)**:这类Bug会导致系统崩溃或严重数据丢失,例如程序死机、非法退出、死循环、数据库死锁、操作导致程序中断、功能未实现、数据库连接错误和数据通讯错误。 - **Very high(非常高)**:这一...

    H5 文件上传js插件 easyUploader.js Bug修复版

    `easyUploader.js`是一个轻量级的JavaScript插件,专为H5文件上传而设计,提供了一套简单易用的API接口,帮助开发者快速实现这一功能。然而,任何软件在实际使用中都可能出现一些问题,`easyUploader.js`也不例外。...

    智动博客助手 v2.94.zip

    软件帮助站长和博客写手快速发送博客文章到博客网站,可以方便管理博客数据,支持数据自动备份恢复、博客库自动更新、发文章时动态伪原创功能等诸多功能,帮助用户优化网站排名,是用户实现博客推广功能的好帮手。...

Global site tag (gtag.js) - Google Analytics