返回列表 发帖

[Struts] 表单内容是否被修改过的判断问题

[Struts1.1]表单内容是否被修改过的判断问题:

大家安安,有个问题请大家帮忙一下儿:

有一个项目管理软件,其中一个.jsp 是用于 “修改项目信息“ 的

当button “Edit/Exit" 被按下后,我想先判断一下用户是否修改了表单中的任何信息,如果没有直接返回,如果有再处理其它的。

那么如何判断 “用户是否修改了表单中的任何信息” 呢?

谢谢大家~~

提问赏金:30金币
获奖名单 : liuguly(10金币)    bruceye(10金币)    heyitang(10金币)    

既然是考虑有没有“修改”,你得首先知道原来表单中是些什么内容,然后,根据现有表单中是填的什么内容,一一比较才知道有没有修改!
你上面提的问题,有一个很关健的问题,你没有说,原来表单中的内容是什么?当你填入新的表单内容后,表单中的原来内容,你如何缓存它?因为你后面,要比较现在表单中的内容和原来表单中的内容,是否一致,或者说进行了修改?
倚楼听风雨,笑看江湖路。。。

TOP

表单的内容不少,一一比较这样做我认为挺苯挺麻烦的,所以看看有没有更好的方法

TOP

原帖由 annie 于 2010-8-12 12:00 发表
表单的内容不少,一一比较这样做我认为挺苯挺麻烦的,所以看看有没有更好的方法


如果是表单内容,比较多的话,我认为楼主的这样的考虑是没有多意义了!
你不管它有没有改变,直接获取表单中的内容,直接更新就可以了!重要必须要填的内容,你验正一下用户必须输入就可以了!你在提交之前,还要去比较用户有没有对表单中的每个内容是否更新,让js做大量的这样的工作,就没有必要啦。。这样用户提交可能要等待的时间就比较长,你要考虑使用用户有没有足够的耐心!
我人人认为,你这样的考虑似乎没有太大的意义!
倚楼听风雨,笑看江湖路。。。

TOP

方法一:整个表单在js中共用一个标志位,每个控件的change事件都修改这个标志位,一旦修改,这个form的内容都提交上去。
方法二:建立一个数据结构,分别标识每个控件,控件的change事件修改自己对应的标志位,检测到哪个控件内容修改了。就只提交那些修改过的控件的name和value。(EXT是的EditortGrid是这样做的)
方法三:每个控件用一个属性名记录原来的value,在提交的时候,分别对比各控件的两个value,从而决定是否提交数据给后台。

[ 本帖最后由 bruceye 于 2010-8-12 14:42 编辑 ]
1

评分人数

  • heyitang

青春是那么的耀眼,我该怎样度过?

TOP

原帖由 heyitang 于 2010-8-12 12:33 发表


如果是表单内容,比较多的话,我认为楼主的这样的考虑是没有多意义了!
你不管它有没有改变,直接获取表单中的内容,直接更新就可以了!重要必须要填的内容,你验正一下用户必须输入就可以了!你在提交之前,还要去比较用户有没有对表单中的每个内容是否更新,让js做大量的这样的工作,就没有必要啦。。这样用户提交可能要等待的时间就比较长,你要考虑使用用户有没有足够的耐心!
我人人认为,你这样的考虑似乎没有太大的意义!


谢谢yitang,原来的软件就是这么设计的,

但现在的问题是:
有人进了这个“修改项目信息” 页面提交了表单后并没有修改这个表单的任何内容,而此时同项目设计组的所有成员及有关人员都收到了项目信息被修改的 email notification.

那么如何解决这个问题呢?最直接的想法就是判断下表单是否被修改过,如果没有,就不给大家发email notification 了

TOP

原帖由 bruceye 于 2010-8-12 14:40 发表
方法一:整个表单在js中共用一个标志位,每个控件的change事件都修改这个标志位,一旦修改,这个form的内容都提交上去。
方法二:建立一个数据结构,分别标识每个控件,控件的change事件修改自己对应的标志位,检测到哪个控件内容修 ...


谢谢Bruceye,这些东西我没用过,一会儿研究研究

TOP

一提交就发邮件么?
当你点击进入修改页面信息的时候,该表单对应了一个form,该form是默认在session范围内的,当你点击提交的时候,还是会用到该form,不会new 而只会把页面信息重新塞进去然后进行持久化发邮件的操作,当你点击进入修改页面信息的时候,你可以再使用一个bean将form信息塞进去,放入request范围,每次存一下就好比页面点击下一页一样。下次点击提交修改按钮的时候,取出form的内容以及request里面的bean对比属性的变化 就可以进行对比了吧。仅供参考不一定对 因为不知道你的代码。

TOP

原帖由 liuguly 于 2010-8-13 10:38 发表
一提交就发邮件么?
当你点击进入修改页面信息的时候,该表单对应了一个form,该form是默认在session范围内的,当你点击提交的时候,还是会用到该form,不会new 而只会把页面信息重新塞进去然后进行持久化发邮件的操作,当你点击进 ...


谢谢liuguly,我就是想看看除了这种一一对比的方式外,还有没有其它的判断方法,比较看看哪种方法比较好

TOP

TOP

返回列表