成长日记--2008-0505

本文分享了Domino开发过程中遇到的中文乱码问题、JavaScript时间控件实现及Base64编码等挑战的解决经历,强调了问题解决过程的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

      Domino的开发是一件很琐碎的事。而且很多时候因为它自身的一些限制,有的普通的问题,也需要独辟蹊径来解决。有时候一点小的死疙瘩能把人熬死。
     不过,熬有时候也是一件有意义的事,熬的过程就是学习、提高的过程。在经历了诸多的思虑、实践和折腾后,最后柳暗花明时的解决方案有时往往其实很简单。不过我并不因此否定自己之前的工作,因为,对于公司来说,结果可能是最重要的,而对于我来说,恰恰相反,过程是最重要的。我的几乎所有收获都是来源于解决问题的过程中,解决问题时的畅快,只是一时的快意罢了。
    所以,尽管最后的解决方案很简单,但我还是想把这个解决问题的过程记录下来。我想事后整理解决问题中曾经的思路也是件有意义的事,混沌过去,很快就会忘记这其中宝贵的点滴。不注重积累,必然导致不可弥补的遗憾。
    解决问题的过程常让我们觉得有一点痛苦,但其间的充实感和成就感足以冲散这种痛苦的感觉。在这个浮躁的社会,做成一件事似乎已经变得越来越稀罕,哪怕是小事。大家更习惯敷衍了事表面工作。少了认真和责任感,随之而来的就是少了成就感和自豪感。现在的我,有了不错的平台,一切走入了正轨,努力地叫自己一件事一件事地去认真做成,不管大事小事。通过自己的努力做成事情的感觉真好。

     前几次解决问题都没有做总结和记录,感觉有点遗憾。现在只能凭记忆简单写下来了。首先是完成了搜索功能的开发,然后就测试组的反馈修改一些bug。

(1)中文乱码问题:解决这个问题的心得是要找对思路下手,还有要多问同事,可以从他们那里得到灵感和启发,同时也不能偏信。这次因为偏信别人的经验,耽搁了不少时间。
问题描述:根据Domino表单中用户指定的搜索条件到特定服务器搜索文档。解析特定服务器返回的xml结果得到相关文档。
解决过程:用自己写的函数getValueFromXML("xxxx",yyyyy);取相关字符串,中文的时候取到的事一堆乱码。由于受到误导,以为domino本身的dom不能用,尝试了各种各样的编码解码方法,费尽周折,最后还是用domino的dom解决的。如下:

 File   file   =   new   File("c://Archivesearch.xml");  
      BufferedWriter   writer   =   new   BufferedWriter(new   FileWriter(file));  
              writer.write(result);  
           writer.close();  

final   String   resultxmlpath   ="c://Archivesearch.xml";
com.ibm.xml.parsers.DOMParser   parser   =   new   com.ibm.xml.parsers.DOMParser();
 
parser.parse(resultxmlpath);  
org.w3c.dom.Document   dom   =   parser.getDocument(); 

org.w3c.dom.Node   node;
org.w3c.dom.Node   childnode;
org.w3c.dom.NodeList   nodelist;
……
i=0;
nodelist   =   dom.getElementsByTagName("subject");
……
while(……){
node   =   nodelist.item(i);  
childnode   =   node.getFirstChild();
subject=childnode.getNodeValue();
i=i+1;
……

这其中,有一点要注意,一定是getnodevalue,不然得不到期望的结果。
中间还有一个插曲是,找不到DOMParser包。还好,在6版本下,有DOMParser包,到7下面才出问题的。不然对于我这个半新手来说,又是无底深渊了。
找不到DOMParser包,就查看这个包的位置,还有7版本和6版本包的不同,最后尝试部署在服务器,导入,失败。最后在同事的提点下,直接在java代理中通过"编辑项目"加入了包xml4J相关的包,这个问题才算完。

(2)javascript时间控件.
Domino自身的时间域在web下不可用,得自己搞一套,这让我有点冒冷汗。不过以俺的聪明才智加上网上丰富的资源,最后还是完美解决了。
最后的时间控件是鼠标滑到选择时间的标签上,就弹出来日历供用户选择,还算优美。
不过缺省时间设置我不太满意,同事说没关系,就那样,就先放了放,有空还是希望能够调一下好一点。
这个问题解决的过程最让我痛苦的是明明有的域,却死活找不到。好一番折腾啊,还是自己javascript经验不够丰富所致。在javascript中写的input域名,只是一个标签而以,并不产生真正的域。而表单中应有一个同名域与其对应,而我却担心冲突,特意把表单中的域命名得和它不一致。哎,事后觉得要是我当时粗心该多好啊,哈哈。不过如果粗心侥幸过关的话,也就不会有这样的收获了。

(3)base64编码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值