`
tear
  • 浏览: 61106 次
  • 性别: Icon_minigender_2
  • 来自: 广西
社区版块
存档分类
最新评论

不许再犯这样的错误!

    博客分类:
  • java
阅读更多
together以前写的帖子http://www.iteye.com/topic/29482里的无级树形分类例子是struts+hibernate2实现的。为了应用到我自己的分类里,我尝试着把它改成了springmvc+hibernate3。但是问题来了:
在一级分类A下左键选择增加子类A1,保存之后发现A1的父类竟然是A1自身而不是分类A!
百思不得其解,明明根据页面传递过来的分类A的ID从数据库里取出分类A,然后A1.setParent(A);怎么到最后parent变成A1自己了?确认确实是正确取出了分类A。根据System.out.println打印出来的信息发现:执行categoryDao.save(A1);之后,A.name竟然变成了跟A1.name一样。难道A1保存之后把A给覆盖掉,以致自己成了自己的父类?但是只有当A和A1的ID相同的时候才会有可能出现被覆盖的情况哦,而A1是我要增加的子类尚未保存,怎么可能会出现在SAVE之前就具有与A相同的ID?可是结果我却吃惊地却发现执行bind(request, A1);之后的A1.id竟然是有值的,并不为NULL!新增A1尚未保存就具有了ID,而且发现此时的A1.id==A.id!什么原因造成的?
突然想起来,难道是页面上有一个属性为id的值在bind(request, A1);之后自动绑定给了A1,而该id的值正好是A.id?
赶紧回头检查页面,果然是这样!
<input type="hidden" value="" name="id"/>

该文本框是用来传递父类ID的(也就是A.id),而要命的是name="id",而bind(request, A1);会根据匹配的属性自动绑定数据,于是出现了A.id被绑定到A1.id上,保存A1自然就覆盖掉原来的A。
解决方法:很简单,把
<input type="hidden" value="" name="id"/>
改成
<input type="hidden" value="" name="eid"/>
,只要name属性与分类实体类的属性id区别开就好。

记得以前做图片文件上传时,也犯了同样的错误,实体类属性img是String,而我在输入页面里的文本框这样写的
<input type="file" name="img">
。注意到了没?name="img"与实体类属性img相同,结果可想而知,一个file类型的数据企图要绑定到一个String类型的字段上,于是出现了Field error in object 'command' on field 'img': rejected value
解决方法一样:把name="img"改成与img不一样的。之后自己再处理绑定数据。

树形分类问题终于解决啦,好欣慰!以后一定要好好注意,不再犯类似的错误!
come on!
分享到:
评论

相关推荐

    亲爱的家长们-亲爱的家长们-以后不许再这样的说!.docx

    经常听到“你看别人家的孩子”这样的话,孩子可能会长期处于自我怀疑中,甚至在成年后易产生嫉妒心理。父母应避免用这种方式评价孩子,而是关注并鼓励孩子的个人优点。 4. 起跑线观念:一些家长过于强调“不能输在...

    初中语文文摘社会不许是最大的鼓动

    一个幽默的故事说明了这种心态:一个人在找不到厕所时,选择在“此处严禁小解”的地方方便,因为他认为既然有这样的禁令,说明这里常有人这么做。这个故事虽然荒诞,但却揭示了人们面对“不许”时的逻辑:禁止往往...

    联通短信网关SPMS鉴权中心错误代码

    12. **错误代码212:包月话单不许下发** 为了防止不合规的包月服务,每月10日前和用户订制后的三天内不允许发送包月话单。 这些错误代码有助于SP识别和解决在与联通短信网关交互时遇到的问题,确保服务质量并维护...

    outlook错误代码.pdf

    2. **550 5.7.1 relaying not permitted**:同样,这个错误表示SMTP服务器不许可转发邮件。你需要找到一个允许转发的SMTP服务器,或者确认你的邮件地址和SMTP设置是正确的。 3. **550 &lt;&gt;:local user only** 和 **...

    大班健康不许摸教案反思.doc.pdf

    这样可以帮助他们在遇到潜在危险时能够识别并作出反应。 再者,教案需教授孩子们如何说“不”。学习拒绝不适当的身体接触是一项重要的技能,孩子们需要知道他们有权拒绝,即使是对成人的触碰也不例外。这需要反复的...

    netbox2 不许安装iis 即可运行

    标题“netbox2 不许安装iis 即可运行”所描述的是一个名为NetBox2的应用程序,它具有独特的能力,允许用户在不安装Internet Information Services (IIS) web服务器的情况下运行ASP和JSP等Web应用程序。这为用户提供...

    页面校验函数。该函数可以很方便的校验页面上不许为空的项,校验页面输入框Text的合法值,如数字和日期的校验等

    页面校验函数。...如果不许某项为空可以这样设置:申请单位:申请单位;nullStr:false;"&gt;。使用该函数只能对页面text输入框进行验证,同时必须为每个text输入框设定title的值。该函数的具体用法请见sample.htm。

    初中语文文摘历史三年内不许发表文章

    【标题】: "傅斯年学术规则:三年内不许发表文章" 【描述】: 这一规则源于著名学者傅斯年对新晋研究人员的教诲,旨在培养扎实的学术基础。 【标签】: 学术规范, 研究方法, 学术成长 在20世纪初期的中国学术界,...

    只许州官放火,不许百姓点灯.docx

    本文将对古代中国官员的名讳避讳文化进行剖析,从"只许州官放火,不许百姓点灯"的故事开始,讲述了中国古代官员对名讳的避讳文化,并通过多个实例,展示了官员如何利用手中的权力享受特权,不顾百姓的感触和死活。...

    小程序7-测试服.cpp

    C++ 版本:3.00.058 禁止用于商业用途!!! 不许抄袭!!! 2020.11.20更新 每周五,周六,周日不定时更新 纯属娱乐,勿信

    不许看-crx插件

    安装不许看之后,公众平台主页中的「新消息」、「新增人数」和「总用户数」数据将会自动隐藏。用了「不许看」之后:白天有精神,干活都有力气了!晚上睡得香,再也不用担惊受怕了!------v 1.0.4 新增功能:- 适配...

    许看不许改 为WPS文档加上“保护锁”_1.docx

    许看不许改 - WPS 文档加上“保护锁” 在现代社会中,保护知识产权和个人劳动成果己经成为人们关心的焦点。作为中国特色软件的 WPS Office,也在不断地完善和改进中,满足用户对文档保护的需求。 知识点一:文档...

    大班健康教育活动教案《不许摸》润新教育.txt

    大班健康教育活动教案《不许摸》润新教育.txt

    xi4sp4_error_messages_zh_CN

    标签“bo4 错误代码 代码 fwb”简明地指出了这些信息涉及BO BI套件的错误代码,并且以“FWB”开头,这表明错误代码是与BI平台服务器(FWB)相关的。 文档的部分内容引用了SAP BusinessObjects Business ...

    xftp7免更新版,不许验证更新

    标题中的“xftp7免更新版,不许验证更新”指的是该版本已经过修改,去除了自动更新功能,用户无需担心软件会自动检查并下载新版本,从而保持当前使用的稳定状态。 FTP是一种用于在网络上进行文件传输的基础协议,...

    幼儿园社会安全《认识坏人-保护自己-不许摸》[宣贯].pptx

    《认识坏人-保护自己-不许摸》的教育内容主要针对幼儿园阶段的孩子,旨在帮助他们建立起初步的自我保护意识,了解身体的隐私部位,并学习如何辨别和应对可能的不安全行为。以下是对这一主题的详细说明: 首先,教育...

    日本幽默广告文案策划不许笑严肃点.pdf

    由于文件中的内容段落提示表明,实际文档内容可能存在技术性错误,因此在阅读和理解文档时需要注意识别错误或漏字,并努力保证信息的准确性与通顺性。如果可能的话,最好能获得文档的原版内容,以避免误解或误读。

    健康教案不许摸.doc

    【知识点】 1. 隐私教育:健康教案的核心是教育孩子们认识身体的隐私部位,了解个人隐私的重要性,这是儿童性教育的基础。隐私部位包括胸部、腿部、臀部以及生殖器等,这些部位不应随便暴露或让他人触摸。...

Global site tag (gtag.js) - Google Analytics