﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-banxitan-随笔分类-JAVA</title><link>http://www.blogjava.net/banxitan/category/39028.html</link><description /><language>zh-cn</language><lastBuildDate>Tue, 26 Mar 2013 23:32:39 GMT</lastBuildDate><pubDate>Tue, 26 Mar 2013 23:32:39 GMT</pubDate><ttl>60</ttl><item><title>IBM JDK 、SUN JDK、HP JDK如何产生Heapdump文件</title><link>http://www.blogjava.net/banxitan/archive/2013/03/26/397006.html</link><dc:creator>MikyTan</dc:creator><author>MikyTan</author><pubDate>Tue, 26 Mar 2013 08:03:00 GMT</pubDate><guid>http://www.blogjava.net/banxitan/archive/2013/03/26/397006.html</guid><wfw:comment>http://www.blogjava.net/banxitan/comments/397006.html</wfw:comment><comments>http://www.blogjava.net/banxitan/archive/2013/03/26/397006.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/banxitan/comments/commentRss/397006.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/banxitan/services/trackbacks/397006.html</trackback:ping><description><![CDATA[<span style="border-collapse: separate; font-family: Tahoma; line-height: normal; text-align: -webkit-auto; border-spacing: 0px; font-size: medium; "><span style="color: #444444; font-family: 'Lucida Grande', Verdana, 'Bitstream Vera Sans', Arial, sans-serif; font-size: 14px; line-height: 24px; background-color: #ffffff; ">JAVA中，通过分析Heapdump文件可以检查程序是否存在内存泄露，但是这个文件一般是在程序遇到致命问题时才会产生，而如何事前生成这个文件，从而在程序尚末崩溃前找出问题的所在。</span></span><div><span style="color: #444444; font-family: 'Lucida Grande', Verdana, 'Bitstream Vera Sans', Arial, sans-serif; line-height: 24px; background-color: #ffffff; "><br /></span></div><div><span style="color: #444444; font-family: 'Lucida Grande', Verdana, 'Bitstream Vera Sans', Arial, sans-serif; line-height: 24px; background-color: #ffffff; ">以下记述了各个版本的JDK产生DUMP文件的方法：</span></div><div><span style="color: #444444; font-family: 'Lucida Grande', Verdana, 'Bitstream Vera Sans', Arial, sans-serif; line-height: 24px; background-color: #ffffff; "><br /></span></div><div><p style="list-style: none; margin-top: 10px; margin-bottom: 10px; padding: 0px; border-style: none; line-height: 24px; color: #333333; font-family: 'Lucida Grande', Verdana, 'Bitstream Vera Sans', Arial, sans-serif; font-size: 13px; background-color: #ffffff; "><span style="color: #444444; font-size: 14px; ">UN JDK生成Heapdump文件只需要在tomcat启动脚本中增加 HeapDumpOnOutOfMemoryError 参数<br /> 此参数需要Java SE release 5.0 update 14 或以上支持</span></p><p style="list-style: none; margin-top: 10px; margin-bottom: 10px; padding: 0px; border-style: none; line-height: 24px; color: #333333; font-family: 'Lucida Grande', Verdana, 'Bitstream Vera Sans', Arial, sans-serif; font-size: 13px; background-color: #ffffff; "><span style="color: #444444; font-size: 14px; ">设置示例:<br /> set JAVA_OPTS=%JAVA_OPTS% -server -Xms512m -Xmx800m -XX:PermSize=64M -XX:MaxPermSize=128m -Djava.awt.headless=true -XX:+HeapDumpOnOutOfMemoryError -XX:+HeapDumpOnCtrlBreak</span></p><p style="list-style: none; margin-top: 10px; margin-bottom: 10px; padding: 0px; border-style: none; line-height: 24px; color: #333333; font-family: 'Lucida Grande', Verdana, 'Bitstream Vera Sans', Arial, sans-serif; font-size: 13px; background-color: #ffffff; "><span style="color: #444444; font-size: 14px; ">IBM JDK生成Heapdump文件的开关：<br /> &#8212; export IBM_HEAPDUMP=true<br /> &#8212; export IBM_HEAP_DUMP=true<br /> &#8212; export IBM_HEAPDUMP_OUTOFMEMORY=true<br /> &#8212; export IBM_JAVADUMP_OUTOFMEMORY=true<br /> &#8212; export IBM_JAVACORE_OUTOFMEMORY=true<br /> &#8212; export IBM_HEAPDUMPDIR=&lt;directory_path&gt;</span></p><p style="list-style: none; margin-top: 10px; margin-bottom: 10px; padding: 0px; border-style: none; line-height: 24px; color: #333333; font-family: 'Lucida Grande', Verdana, 'Bitstream Vera Sans', Arial, sans-serif; font-size: 13px; background-color: #ffffff; "><span style="color: #444444; font-size: 14px; ">HP JDK生成Heapdump文件需要在在环境变量上，加上export _JAVA_HEAPDUMP=1</span></p></div><img src ="http://www.blogjava.net/banxitan/aggbug/397006.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/banxitan/" target="_blank">MikyTan</a> 2013-03-26 16:03 <a href="http://www.blogjava.net/banxitan/archive/2013/03/26/397006.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>毕业心得。。。。。</title><link>http://www.blogjava.net/banxitan/archive/2010/03/07/314771.html</link><dc:creator>MikyTan</dc:creator><author>MikyTan</author><pubDate>Sun, 07 Mar 2010 14:24:00 GMT</pubDate><guid>http://www.blogjava.net/banxitan/archive/2010/03/07/314771.html</guid><wfw:comment>http://www.blogjava.net/banxitan/comments/314771.html</wfw:comment><comments>http://www.blogjava.net/banxitan/archive/2010/03/07/314771.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/banxitan/comments/commentRss/314771.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/banxitan/services/trackbacks/314771.html</trackback:ping><description><![CDATA[<p>毕业后，有人工作，有人继续上学，大家千万不要错过这篇文章，能看到这篇文章也是一种幸运，真的受益匪浅，对我有很大启迪，这篇文章将会改变我的一生，真的太好了，希望与有缘人分享，也希望对有缘人有所帮助！这篇文章有点长，但是希望你能够耐心的看完，看完之后有种&#8220;相见恨晚&#8221;的感觉，特别激动，希望大家好好的珍藏这篇文章，相信多年以后，再来看这篇文章，一定有不同的感觉。</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;正如&#8221;打工皇帝&#8221;唐骏说：&#8221;我觉得有两种人不要跟别人争利益和价值回报。第一种人就是刚刚进入企业的人，头5年千万不要说你能不能多给我一点儿工资，最重要的是能在企业里学到什么，对发展是不是有利&#8230;&#8230;&#8221;</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;人总是从平坦中获得的教益少，从磨难中获得的教益多；从平坦中获得的教益浅，从磨难中获得的教益深。一个人在年轻时经历磨难，如能正确视之，冲出黑暗，那就是一个值得敬慕的人。最要紧的是先练好内功，毕业后这5年就是练内功的最佳时期，练好内功，才有可能在未来攀得更高。&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;出路在哪里？出路在于思路！</p>
<p>&nbsp;</p>
<p>　　其实，没有钱、没有经验、没有阅历、没有社会关系，这些都不可怕。没有钱，可以通过辛勤劳动去赚；没有经验，可以通过实践操作去总结；没有阅历，可以一步一步去积累；没有社会关系，可以一点一点去编织。但是，没有梦想、没有思路才是最可怕的，才让人感到恐惧，很想逃避!</p>
<p>&nbsp;</p>
<p>　　人必须有一个正确的方向。无论你多么意气风发，无论你是多么足智多谋，无论你花费了多大的心血，如果没有一个明确的方向，就会过得很茫然，渐渐就丧失了斗志，忘却了最初的梦想，就会走上弯路甚至不归路，枉费了自己的聪明才智，误了自己的青春年华。&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp; &nbsp;荷马史诗《奥德赛》中有一句至理名言：&#8221;没有比漫无目的地徘徊更令人无法忍受的了。&#8221;毕业后这5年里的迷茫，会造成10年后的恐慌，20年后的挣扎，甚至一辈子的平庸。如果不能在毕业这5年尽快冲出困惑、走出迷雾，我们实在是无颜面对10年后、20年后的自己。毕业这5年里，我们既有很多的不确定，也有很多的可能性。</p>
<p>&nbsp;</p>
<p>　　毕业这5年里，我们既有很多的待定，也有很多的决定。</p>
<p>&nbsp;</p>
<p>　　迷茫与困惑谁都会经历，恐惧与逃避谁都曾经有过，但不要把迷茫与困惑当作可以自我放弃、甘于平庸的借口，更不要成为自怨自艾、祭奠失意的苦酒。生命需要自己去承担，命运更需要自己去把握。在毕业这5年里，越早找到方向，越早走出困惑，就越容易在人生道路上取得成就、创造精彩。无头苍蝇找不到方向，才会四处碰壁；一个人找不到出路，才会迷茫、恐惧。&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp; &nbsp;生活中，面对困境，我们常常会有走投无路的感觉。不要气馁，坚持下去，要相信年轻的人生没有绝路，困境在前方，希望在拐角。只要我们有了正确的思路，就一定能少走弯路，找到出路！&nbsp;</p>
<p>&nbsp;</p>
<p>　　成功的人不是赢在起点，而是赢在转折点。&nbsp;</p>
<p>&nbsp;</p>
<p>　　不少刚刚毕业的年轻人，总是奢望马上就能找到自己理想中的工作。然而，很多好工作是无法等来的，你必须选择一份工作作为历练。职业旅程中的第一份工作，无疑是踏入社会这所大学的起点。也许你找了一份差强人意的工作，那么从这里出发，好好地沉淀自己，从这份工作中汲取到有价值的营养，厚积薄发。千里之行，始于足下，只要出发，就有希望到达终点。</p>
<p>&nbsp;</p>
<p>　　起点可以相同，但是选择了不同的拐点，终点就会大大不同！ 　　</p>
<p>&nbsp;</p>
<p>　　毕业这几年，我们的生活、感情、职业等都存在很多不确定的因素，未来也充满了各种可能。这个时候，必须学会选择，懂得放弃，给自己一个明确的定位，使自己稳定下来。如果你不主动定位，就会被别人和社会&#8221;定型&#8221;！</p>
<p>&nbsp;</p>
<p>　　可以这么说：一个人在毕业这5年培养起来的行为习惯，将决定他一生的高度。我们能否成功，在某种程度上取决于自己对自己的评价，这就是定位。你给自己定位是什么，你就是什么。定位能决定人生，定位能改变命运。丑小鸭变成白天鹅，只要一双翅膀；灰姑娘变成美公主，只要一双水晶鞋。&nbsp;</p>
<p>&nbsp;</p>
<p>　　人的命，三分天注定，七分靠打拼，有梦就&#8221;会红&#8221;，爱拼才会赢。只要不把自己束缚在心灵的牢笼里，谁也束缚不了你去展翅高飞。</p>
<p>&nbsp;</p>
<p>　　现实情况远非他们所想的那样。于是，当优越感逐渐转为失落感甚至挫败感时，当由坚信自己是一块&#8221;金子&#8221;到怀疑自己是一粒&#8221;沙子&#8221;时，愤怒、迷茫、自卑就开始与日俱增。</p>
<p>&nbsp;</p>
<p>　　其实，应该仔细掂量一下自己，你是否真是金子？是真金，手中要有绝活，才能上要有过人之处才行。一句话：真金是要靠实力来证明的，只有先把自己的本领修炼好了，才有资格考虑伯乐的事情&nbsp;</p>
<p>&nbsp;</p>
<p>　　每颗珍珠原本都是一粒沙子，但并不是每一粒沙子都能成为一颗珍珠。</p>
<p>&nbsp;</p>
<p>　　想要卓尔不群，就要有鹤立鸡群的资本。忍受不了打击和挫折，承受不住忽视和平淡，就很难达到辉煌。年轻人要想让自己得到重用，取得成功，就必须把自己从一粒沙子变成一颗价值连城的珍珠。</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;天有下雨与日出，人生高峰与低谷。</p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;莫为浮云遮望眼，风物长宜放眼量。</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp; &nbsp;只要拂去阴霾，就能亮出朗朗晴空。如果你在工作上有些不如意，要相信自己不会一直处于人生的低谷期，总有一天能冲破重重云层。告诉自己：我并没有失败，只是暂时没有成功！只要在内心点亮一盏希望之灯，一定能驱散黑暗中的阴霾，迎来光明。&nbsp;</p>
<p>&nbsp;</p>
<p>　　 的确，论资历，他们是不折不扣的职场菜鸟，业务涉及不深，人脉一穷二白，在工作中经常碰壁。他们的压力并不一定都像千钧大石，而是像大雨来临前的天色，灰色低沉，明明有空间，却被灰色填满每个缝隙，只能等待大雨倾盆之后的晴空。</p>
<p>&nbsp;</p>
<p>　　&#8221;起得比鸡早，睡得比狗晚，干得比驴多，吃得比猪差。&#8221;这是很多刚刚毕业的人喜欢用来调侃自己生活状态的话。虽然有点儿夸张，但是，他们中的很多人的确一直都被灰色心情所笼罩&#8211;心里永远是多云转阴。记得有位哲人曾说：&#8221;我们的痛苦不是问题本身带来的，而是我们对这些问题的看法产生的。&#8221;换个角度看人生，是一种突破、一种解脱、一种超越、一种高层次的淡泊与宁静，从而获得自由自在的快乐。&nbsp;</p>
<p>&nbsp;</p>
<p>　　 一位哲人说：&#8221;人生就是一连串的抉择，每个人的前途与命运，完全把握在自己手中，只要努力，终会有成。&#8221;就业也好，择业也罢，创业亦如此，只要奋发努力，都会成功。你是不是准备把生命的承诺全部都交给别人？</p>
<p>&nbsp;</p>
<p>　　毕业后这5年，是改变自己命运的黄金时期。在最能决定自己命运时，如果还不把握，那你还要等到什么时候呢？我的人生我做主，命运由己不由人。</p>
<p>&nbsp;</p>
<p>　　不要活在别人的嘴里，不要活在别人的眼里，而是把命运握在自己手里。</p>
<p>&nbsp;</p>
<p>　　别说你没有背景，自己就是最大的背景。美国作家杰克&#183;凯鲁亚克说过一句话：&#8221;我还年轻，我渴望上路。&#8221;在人生的旅途中，我们永远都是年轻人，每天都应该满怀渴望。每个人的潜能都是无限的，关键是要发现自己的潜能和正确认识自己的才能，并找到一个能充分发挥潜能的舞台，而不能只为舞台的不合适感到不快。要客观公正地看待自己的能力，结合自己的实际情况和爱好冷静选择，尽可能到最需要自己、最适合自己的地方。</p>
<p>&nbsp;</p>
<p>　 &nbsp; &nbsp;在人力资源管理界，特别流行一个说法，即&#8221;骑马，牵牛，赶猪，打狗&#8221;理论：人品很好，能力又很强的，是千里马，我们要骑着他；人品很好但能力普通的，是老黄牛，我们要牵着他；人品、能力皆普通的，就是&#8221;猪&#8221;，我们要赶走他；人品很差能力很强的，那是&#8221;狗&#8221;，我们要打击他。</p>
<p>&nbsp;</p>
<p>　　我想，刚刚毕业几年的你，一样胸怀大志，一样想成为一匹被人赏识、驰骋沙场的千里马吧？那么，就好好沉淀下来。低就一层不等于低人一等，今日的俯低是为了明天的高就。所谓生命的价值，就是我们的存在对别人有价值。能被人利用是一件好事，无人问津才是真正的悲哀！</p>
<p>　　　能干工作、干好工作是职场生存的基本保障。</p>
<p>&nbsp;</p>
<p>　　任何人做工作的前提条件都是他的能力能够胜任这项工作。能干是合格员工最基本的标准，肯干则是一种态度。一个职位有很多人都能胜任，都有干好这份工作的基本能力，然而，能否把工作做得更好一些，就要看是否具有踏实肯干、苦于钻研的工作态度了。</p>
<p>&nbsp;</p>
<p>　　在能干的基础上踏实肯干。</p>
<p>&nbsp;</p>
<p>　　工作中，活干得比别人多，你觉得吃亏；钱拿得比别人少，你觉得吃亏；经常加班加点，你觉得吃亏&#8230;&#8230;其实，没必要这样计较，吃亏不是灾难，不是失败，吃亏也是一种生活哲学。现在吃点儿小亏，为成功铺就道路，也许在未来的某个时刻，你的大福突然就来了。</p>
<p>&nbsp;</p>
<p>　　能吃亏是做人的一种境界，是处世的一种睿智。&nbsp;</p>
<p>&nbsp;</p>
<p>　　在工作中并不是多做事或多帮别人干点儿活就是吃亏。如果领导让你加加班、赶赶任务，别以为自己吃了大亏，反而应该感到庆幸，因为领导只叫了你，而没叫其他人，说明他信任你、赏识你。吃亏是一种贡献，你贡献得越多，得到的回报也就越多。乐于加班，就是这样的一种吃亏。</p>
<p>&nbsp;</p>
<p>　　舍得舍得，有舍才有得；学会在适当时吃些亏的人绝对不是弱智，而是大智。</p>
<p>&nbsp;</p>
<p>　　给别人留余地就是给自己留余地，予人方便就是予己方便，善待别人就是善待自己。</p>
<p>&nbsp;</p>
<p>　　傻人有傻福，因为傻人没有心计。和这样的人在一起，身心放松，没有太多警惕，就能相互靠近。傻在很多时候意味着执着和忠贞，也意味着宽厚和诚实，让人不知不觉站到他一边。傻人无意中得到的，比聪明人费尽心机得到的还多。毕业这几年，你的天空中只飘着几片雪花，这样你就满足了吗？成功需要坚持与积累，与其专注于搜集雪花，不如省下力气去滚雪球。巴菲特说：&#8221;人生就像滚雪球，最重要的是发现很湿的雪和很长的坡。&#8221;让自己沉淀下来，学着发现&#8221;很湿的雪&#8221;，努力寻找&#8221;很长的坡&#8221;。记住：散落的雪花会很快融化，化为乌有，只有雪球才更实在，才能长久。</p>
<p>在毕业这几年里，你要是能做到比别人多付出一分努力，就意味着比别人多积累一分资本，就比别人多一次成功的机会。&nbsp;</p>
<p>&nbsp;</p>
<p>　　什么是职业化呢？职业化就是工作状态的标准化、规范化、制度化，即在合适的时间、合适的地点用合适的方式说合适的话、做合适的事，使知识、技能、观念、思维、态度、心理等符合职业规范和标准。&#8221;在每个行业里，都有很多出色的人才，他们之所以能存在，是因为比别人更努力、更智慧、更成熟。但是，最重要的是，他们比一般人更加职业化！这就是为什么我现在能当你老板的原因。一个人仅仅专业化是不够的，只有职业化的人才能飞在别人前面，让人难以超越！&#8221;不要以为我们现在已经生存得很安稳了。对于毕业5年的人来讲，一定要认清即将面临的五大挑战。</p>
<p>&nbsp;</p>
<p>一、赡养父母。</p>
<p>二、结婚生子。</p>
<p>三、升职加薪。</p>
<p>四、工作压力。</p>
<p>五、生活质量。</p>
<p>&nbsp;</p>
<p>　　有的人为生存而雀跃，目光总是停在身后，三天打鱼两天晒网，有始无终。</p>
<p>&nbsp;</p>
<p>　　有的人为发展而奋斗，目光总是盯在正前方，每天进步一点点，坚持不懈。</p>
<p>&nbsp;</p>
<p>　　毕业这几年，不能没有追求和探索，不能没有理想和目标。人生如逆水行舟，不进则退。甘于现状的生活就是不再前行的船，再也无法追上时代前进的步伐。一定要抓紧每一秒钟的时间来学习，要明白学习不是学生的专利。小聪明的人最得意的是：自己做过什么？大智慧的人最渴望的是：自己还要做什么？</p>
<p>&nbsp;</p>
<p>　　小聪明是战术，大智慧是战略；小聪明看到的是芝麻，大智慧看到的是西瓜。</p>
<p>&nbsp;</p>
<p>　　在这个世界上，既有大人物，也有小角色，大人物有大人物的活法，小人物有小人物的潇洒，每个人都有自己的生活方式，谁也勉强不了谁。但是，小聪明只能有小成绩和小视野，大智慧才能有大成就和大境界。小企业看老板，中企业看制度，大企业看文化。&nbsp;</p>
<p>&nbsp;</p>
<p>　　小公司与大企业都有生存之道，没有好坏之分，但对一个人不同阶段的影响会不同。</p>
<p>&nbsp;</p>
<p>　　小公司肯定想要发展为大企业，这是一种目标，年轻人也要给自己的职业生涯制定目标。毕业几年的你，是否经常会怯场或者是感到没有底气？居安思危绝对不是危言耸听！此刻打盹，你将做梦；此刻学习，你将圆梦。在竞争激烈的人生战场上，打盹的都是输家！</p>
<p>&nbsp;</p>
<p>　　每个人在年轻的时候似乎都豪情万丈，什么都不怕，可是随着年龄的增长，每天想着房子、工作、养家糊口这些俗事儿，再也没有年轻时那种敢于&#8221;上天探星、下海捞月&#8221;的勇气了。是我们改变了生活，还是生活改变了我们？我们的思想越来越复杂，因为有了越来越多的舍不得、越来越多的顾虑，我们总是在徘徊、总是在犹豫。毕业开始一两年，生活的重担会压得我们喘不过气来，挫折和障碍堵住四面八方的通口，我们往往在压迫得自己发挥出潜能后，才能杀出重围，找到出路。可是两三年后，身上的重担开始减轻，工作开始一帆风顺，我们就松懈了下来，渐渐忘记了潜在的危险。直到有一天危机突然降临，我们在手足无措中被击败&#8230;&#8230;毕业这几年，仍然处于危险期，一定要有居安思危的意识，好好打拼，这样才能有一个真正的安全人生！</p>
<p>&nbsp;</p>
<p>　　生于忧患，死于安乐。如果你想跨越自己目前的成就，就不能画地自限，而是要勇于接受挑战。对畏畏缩缩的人来说，真正的危险正在于不敢冒险！</p>
<p>&nbsp;</p>
<p>　　年轻人在社会的重压下，适应能力已变得越来越强，只是他们不自觉地习惯被环境推着走。他们不敢冒险，怕给自己带来终身的遗憾，于是告慰自己：&#8221;我对得起自己、对得起家人，因为我已竭尽全力。&#8221;其实，人只有不断挑战和突破才能逐渐成长。长期固守于已有的安全感中，就会像温水里的青蛙一样，最终失去跳跃的本能。</p>
<p>&nbsp;</p>
<p>　　经历了这几年社会生活，你应该明白：这个世界上有富也有贫，有阴也有亮，有丑也有美，到底看到什么，取决于自己是积极还是消极。在年轻时学会勤勉地工作，用一种光明的思维对待生活，那么，只要张开手掌，你就会发现，里面有一片灿烂的人生。</p>
<p>&nbsp;</p>
<p>　　把感恩刻在石头上，深深地感谢别人帮助过你，永远铭记，这是人生应有的一种境界；把仇恨写在沙滩上，淡淡忘掉别人伤害过你，学会宽容，让所有的怨恨随着潮水一去不复返，这也是一种人生境界。</p>
<p>&nbsp;</p>
<p>　　学会倒出水，才能装下更多的水。从毕业那天开始，学会把每天都当成一个新的起点，每一次工作都从零开始。如果你懂得把&#8221;归零&#8221;当成一种生活的常态，当成一种优秀的延续，当成一种时刻要做的事情，那么，经过短短几年，你就可以完成自己职业生涯的正确规划与全面超越。</p>
<p>&nbsp;</p>
<p>　　在职业起步的短短道路上，想要得到更好、更快、更有益的成长，就必须以归零思维来面对这个世界。不要以大学里的清高来标榜自己，不要觉得自己特别优秀，而是要把自己的姿态放下，把自己的身架放低，让自己沉淀下来，抱着学习的态度去适应环境、接受挑战。放下&#8221;身段&#8221;才能提高身价，暂时的俯低终会促成未来的高就。</p>
<p>&nbsp;</p>
<p>　　年轻人从校园或者从一个环境进入一个新环境，就要勇于将原来环境里熟悉、习惯、喜欢的东西放下，然后从零开始。我们想在职场上获得成功，首先就要培养适应力。从自然人转化为单位人是融入职场的基本条件。一个人起点低并不可怕，怕的是境界低。越计较自我，便越没有发展前景；相反，越是主动付出，那么他就越会快速发展。很多今天取得一定成就的人，在职业生涯的初期都是从零开始，把自己沉淀再沉淀、倒空再倒空、归零再归零，正因为这样，他们的人生才一路高歌，一路飞扬。</p>
<p>&nbsp;</p>
<p>　　在毕业这几年里，我们要让过去归零，才不会成为职场上那只背着重壳爬行的蜗牛，才能像天空中的鸟儿那样轻盈地飞翔。请好好品味一下杰克&#183;韦尔奇说过的一句话：&#8221;纠正自己的行为，认清自己，从零开始，你将重新走上职场坦途。&#8221;　吐故才能纳新，心静才能身凉，有舍才能有得，杯空才能水满，放下才能超越。</p>
<p>&nbsp;</p>
<p>　　归零思维五大表现：心中无我，眼中无钱，念中无他，朝中无人，学无止境。</p>
<p>&nbsp;</p>
<p>　　年轻人难免带着几分傲气，认为自己无所不能、所向披靡，其实不然，初入职场的新人还是个&#8221;婴儿&#8221;，正处在从爬到走的成长阶段。在毕业这几年里，一定要让自己逐步培养起学徒思维、海绵思维、空杯思维，具有这样思维的人心灵总是敞开的，能随时接受启示和一切能激发灵感的东西，他们时刻都能感受到成功女神的召唤。</p>
<img src ="http://www.blogjava.net/banxitan/aggbug/314771.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/banxitan/" target="_blank">MikyTan</a> 2010-03-07 22:24 <a href="http://www.blogjava.net/banxitan/archive/2010/03/07/314771.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JBOSS 下如何配置C3P0的连接池(解决Mysql 8小时的问题)</title><link>http://www.blogjava.net/banxitan/archive/2010/01/19/310115.html</link><dc:creator>MikyTan</dc:creator><author>MikyTan</author><pubDate>Tue, 19 Jan 2010 09:28:00 GMT</pubDate><guid>http://www.blogjava.net/banxitan/archive/2010/01/19/310115.html</guid><wfw:comment>http://www.blogjava.net/banxitan/comments/310115.html</wfw:comment><comments>http://www.blogjava.net/banxitan/archive/2010/01/19/310115.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/banxitan/comments/commentRss/310115.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/banxitan/services/trackbacks/310115.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: JBOSS 下如何配置C3P0的连接池(解决Mysql 8小时的问题)问题引起：&nbsp;&nbsp;&nbsp; 在公司配置文档管理系统(OPENKM)时，把数据源切换到Mysql数据源下，经过测试，发现经过8小时后，数据库连接自动断开。解决办法：&nbsp;&nbsp;&nbsp; 把原来的openkm-ds.xml删除掉。原openkm-ds.xml的内容如下：...&nbsp;&nbsp;<a href='http://www.blogjava.net/banxitan/archive/2010/01/19/310115.html'>阅读全文</a><img src ="http://www.blogjava.net/banxitan/aggbug/310115.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/banxitan/" target="_blank">MikyTan</a> 2010-01-19 17:28 <a href="http://www.blogjava.net/banxitan/archive/2010/01/19/310115.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Jetty启动时不能修改 js等静态文件的解决</title><link>http://www.blogjava.net/banxitan/archive/2009/12/28/307490.html</link><dc:creator>MikyTan</dc:creator><author>MikyTan</author><pubDate>Mon, 28 Dec 2009 02:50:00 GMT</pubDate><guid>http://www.blogjava.net/banxitan/archive/2009/12/28/307490.html</guid><wfw:comment>http://www.blogjava.net/banxitan/comments/307490.html</wfw:comment><comments>http://www.blogjava.net/banxitan/archive/2009/12/28/307490.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/banxitan/comments/commentRss/307490.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/banxitan/services/trackbacks/307490.html</trackback:ping><description><![CDATA[Jetty启动后，如果修改javascript文件，将不能保存，使调试很麻烦。这是因为使用了CACHE，JETTY说是WINDOWS下的一个限制。可以通过如下方法修正： <br />
<br />
解压出jetty.jar中的org/mortbay/jetty/webapp/webdefault.xml文件，将这一选项由true改为false，另存到src/main/resources目录，或者其它自选目录。 <br />
<div>&lt;init-param&gt; <br />
&lt;param-name&gt;useFileMappedBuffer&lt;/param-name&gt; <br />
&lt;param-value&gt;<font color="blue">true</font>&lt;/param-value&gt; &lt;!-- change to <font color="blue">false</font> --&gt; <br />
&lt;/init-param&gt;</div>
<br />
把修改后的webdefault.xml文件跟pom.xml放在一起<br />
<br />
修改pom.xml里的Jetty Plugin的配置，加入webdefault.xml<br />
<div>...<br />
&lt;plugin&gt;<br />
&nbsp;&lt;groupId&gt;org.mortbay.jetty&lt;/groupId&gt;<br />
&nbsp;&lt;artifactId&gt;maven-jetty-plugin&lt;/artifactId&gt;<br />
&nbsp;&lt;version&gt;6.1.7&lt;/version&gt;<br />
&nbsp;&lt;configuration&gt;<br />
&nbsp;&lt;contextPath&gt;/&lt;/contextPath&gt;<br />
&nbsp;&lt;webDefaultXml&gt;webdefault.xml&lt;/webDefaultXml&gt;<br />
&nbsp;...<br />
&nbsp;&lt;/configuration&gt;<br />
&nbsp;...<br />
&lt;/plugin&gt;<br />
...<br />
<br />
附。。。在项目中用到的Jetty用Java代码Call Jetty启动的方法<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;org.mortbay.jetty.Connector;<br />
</span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;org.mortbay.jetty.Server;<br />
</span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;org.mortbay.jetty.nio.SelectChannelConnector;<br />
</span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;org.mortbay.jetty.webapp.WebAppContext;<br />
<br />
</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;JettyStarter&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;JettyStarter()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;main(String[]&nbsp;args)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">try</span><span style="color: #000000;">&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Server&nbsp;server&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;Server();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Connector&nbsp;connector&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;SelectChannelConnector();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;connector.setPort(</span><span style="color: #000000;">9999</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;server.setConnectors(</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;Connector[]&nbsp;{&nbsp;connector&nbsp;});<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WebAppContext&nbsp;webapp&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;WebAppContext();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;webapp.setContextPath(</span><span style="color: #000000;">"</span><span style="color: #000000;">/</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;webapp.setResourceBase(</span><span style="color: #000000;">"</span><span style="color: #000000;">./src/main/webapp</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;webapp.setDefaultsDescriptor(</span><span style="color: #000000;">"</span><span style="color: #000000;">./webdefault.xml</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;server.setHandler(webapp);<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;server.start();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;server.join();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span style="color: #0000ff;">catch</span><span style="color: #000000;">&nbsp;(Exception&nbsp;e)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
}</span></div>
<br />
<br />
</div>
<img src ="http://www.blogjava.net/banxitan/aggbug/307490.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/banxitan/" target="_blank">MikyTan</a> 2009-12-28 10:50 <a href="http://www.blogjava.net/banxitan/archive/2009/12/28/307490.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>解决Maven中的OutOfMemory错误</title><link>http://www.blogjava.net/banxitan/archive/2009/11/19/302962.html</link><dc:creator>MikyTan</dc:creator><author>MikyTan</author><pubDate>Thu, 19 Nov 2009 10:30:00 GMT</pubDate><guid>http://www.blogjava.net/banxitan/archive/2009/11/19/302962.html</guid><wfw:comment>http://www.blogjava.net/banxitan/comments/302962.html</wfw:comment><comments>http://www.blogjava.net/banxitan/archive/2009/11/19/302962.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/banxitan/comments/commentRss/302962.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/banxitan/services/trackbacks/302962.html</trackback:ping><description><![CDATA[<p>当Maven项目很大，或者你运行诸如 mvn site 这样的命令的时候，maven运行需要很大的内存，在默认配置下，就可能遇到java的堆溢出。如：</p>
<p><font style="background-color: #f3f3f3" color="#000000">[INFO] Building jar: /home/dl9pf/svn/mindquarry/mindquarry-jcr/mindquarry-jcr-changes/target/mindquarry-migration-with-dependencies.jar<br />
[INFO] ------------------------------------------------------------------------<br />
[ERROR] FATAL ERROR<br />
[INFO] ------------------------------------------------------------------------<br />
[INFO] Java heap space<br />
[INFO] ------------------------------------------------------------------------<br />
[INFO] Trace<br />
java.lang.OutOfMemoryError: Java heap space<br />
at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:99)<br />
at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:518)<br />
...<br />
at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)<br />
at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)<br />
at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)<br />
at org.codehaus.classworlds.Launcher.main(Launcher.java:375)<br />
[INFO] ------------------------------------------------------------------------<br />
[INFO] Total time: 7 minutes 14 seconds<br />
[INFO] Finished at: Wed Sep 05 07:44:55 CEST 2007<br />
[INFO] Final Memory: 37M/63M<br />
[INFO] ------------------------------------------------------------------------</font><font color="#0000ff"> <br />
</font><strong>解决的方法是调整java的堆大小的值。</strong></p>
<p><font size="4">&nbsp;&nbsp; Windows环境中 <br />
</font>找到文件%M2_HOME%\bin\mvn.bat ，这就是启动Maven的脚本文件，在该文件中你能看到有一行注释为：</p>
<p>@REM set MAVEN_OPTS=-Xdebug -Xnoagent -Djava.compiler=NONE...</p>
<p>它的意思是你可以设置一些Maven参数，我们就在注释下面加入一行：</p>
<p>set MAVEN_OPTS= -Xms128m -Xmx512m<br />
之后，当你运行Maven命令如 mvn -version 的时候，你会看到如下的输出：</p>
<p>E:\test&gt;mvn -version</p>
<p>E:\test&gt;set MAVEN_OPTS= -Xms128m -Xmx512m<br />
Maven version: 2.0.9<br />
Java version: 1.6.0_07<br />
OS name: "windows 2003" version: "5.2" arch: "x86" Family: "windows"<br />
我们看到，配置的Maven选项生效了，OutOfMemoryError也能得以相应的解决。</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><font size="4"><strong>Linux环境中</strong></font> <br />
也可以通过设置环境变量解决该问题， 如，编辑文件 /etc/profile 如下</p>
<p>MAVEN_OPTS=-Xmx512m<br />
export JAVA_HOME MAVEN_HOME MAVEN_OPTS JAVA_BIN PATH CLASSPATH<br />
</p>
<p>&nbsp;</p>
<p><strong><font size="4">如果你使用Hudson</font></strong></p>
<p>用 Hudson + Maven做持续集成，并不幸也遇到了类似的错误，那么上述两种方式都将不再起作用了，因为Hudson使用自己的maven-agent来启动Maven，不会去调用Maven的脚本，自然相应的配置也就无效了。</p>
<p>好在Hudson也给为我们提供了配置点，在Hudson的项目配置页面中，有一块Build区域，这里我们已经设置了Root Pom和Goals。注意该区域的右下角有一个"Advanced..."按钮，点击会看到MAVEN_OPTS输入框，这里输入"-Xmx512m"就OK了。</p>
<p>&nbsp;</p>
<p><strong><font size="4">m2eclipse中</font></strong><br />
类似以上的方法都会失效，所幸m2eclipse提供了配置点。步骤如下：</p>
<p>项目上右击 -&gt; Run As -&gt; Run Configurations -&gt; Maven Build 上右击 -&gt; New</p>
<p>这时会看到一个maven运行配置对话框，这里面其它的配置我不多解释了，为了解决内存溢出的问题，我们可以选择第二个TAB: JRE，然后在VM arguments中输入配置如：-Xms128m -Xmx512m。</p>
<img src ="http://www.blogjava.net/banxitan/aggbug/302962.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/banxitan/" target="_blank">MikyTan</a> 2009-11-19 18:30 <a href="http://www.blogjava.net/banxitan/archive/2009/11/19/302962.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Struts2 字符串截取</title><link>http://www.blogjava.net/banxitan/archive/2009/05/05/269108.html</link><dc:creator>MikyTan</dc:creator><author>MikyTan</author><pubDate>Tue, 05 May 2009 14:55:00 GMT</pubDate><guid>http://www.blogjava.net/banxitan/archive/2009/05/05/269108.html</guid><wfw:comment>http://www.blogjava.net/banxitan/comments/269108.html</wfw:comment><comments>http://www.blogjava.net/banxitan/archive/2009/05/05/269108.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/banxitan/comments/commentRss/269108.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/banxitan/services/trackbacks/269108.html</trackback:ping><description><![CDATA[<br />
&lt;s:set name="hello" value="'Hello Miky as Miky'"&gt;&lt;/s:set&gt;&nbsp; ----定义源字符串<br />
&lt;s:property value="#hello.substring(#hello.indexOf('as')+2)"/&gt;&nbsp; ---输出字符串。结果为 Miky
<img src ="http://www.blogjava.net/banxitan/aggbug/269108.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/banxitan/" target="_blank">MikyTan</a> 2009-05-05 22:55 <a href="http://www.blogjava.net/banxitan/archive/2009/05/05/269108.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JSP  中使用Struts2的值 (Strust2 中调用JAVA的公共类方法)</title><link>http://www.blogjava.net/banxitan/archive/2009/05/05/269056.html</link><dc:creator>MikyTan</dc:creator><author>MikyTan</author><pubDate>Tue, 05 May 2009 12:42:00 GMT</pubDate><guid>http://www.blogjava.net/banxitan/archive/2009/05/05/269056.html</guid><wfw:comment>http://www.blogjava.net/banxitan/comments/269056.html</wfw:comment><comments>http://www.blogjava.net/banxitan/archive/2009/05/05/269056.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/banxitan/comments/commentRss/269056.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/banxitan/services/trackbacks/269056.html</trackback:ping><description><![CDATA[<div class="postText">
<p>Struts2的值是保存在ValueStack中的，假设有一个字符串str，我们一般是这么取值的：</p>
<p>&lt;s:property value="str"/&gt; 或者 ${str}</p>
<p>如果想在jsp中使用的话，可以这么取：</p>
<div class="cnblogs_code">
<pre><span id="Code_Open_Text_184707"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000">&lt;%</span><span style="color: #000000">@ page </span><span style="color: #0000ff">import</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">com.opensymphony.xwork2.util.ValueStack</span><span style="color: #000000">"</span><span style="color: #000000"> </span><span style="color: #000000">%&gt;</span><span style="color: #000000"><br />
&#8230;&#8230;<br />
</span><span style="color: #000000">&lt;%=</span><span style="color: #000000"> ((ValueStack)request.getAttribute(</span><span style="color: #000000">"</span><span style="color: #000000">struts.valueStack</span><span style="color: #000000">"</span><span style="color: #000000">)).findString(</span><span style="color: #000000">"</span><span style="color: #000000">str</span><span style="color: #000000">"</span><span style="color: #000000">) </span><span style="color: #000000">%&gt;</span></span></pre>
</div>
<p>&nbsp;</p>
<p>也可以把ValueStack中的值先放到attribute中，然后直接取attribute的值：</p>
<div class="cnblogs_code">
<pre><span id="Code_Open_Text_184935"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000">&lt;</span><span style="color: #000000">s:set name</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">str</span><span style="color: #000000">"</span><span style="color: #000000"> value</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">%{str}</span><span style="color: #000000">"</span><span style="color: #000000"> </span><span style="color: #000000">/&gt;</span><span style="color: #000000"><br />
</span><span style="color: #000000">&lt;%=</span><span style="color: #000000">request.getAttribute(</span><span style="color: #000000">"</span><span style="color: #000000">str</span><span style="color: #000000">"</span><span style="color: #000000">) </span><span style="color: #000000">%&gt;</span></span></pre>
</div>
<br />
</div>
<div class="postTitle"><a id="AjaxHolder_ctl01_TitleUrl" href="http://www.cnblogs.com/modou/articles/1370315.html">struts2的页面中调用函数</a> </div>
<div class="postText">
<p><strong>方法一：</strong></p>
<p>&lt;s:set name="str" value="'Hello World'"&gt;&lt;/s:set&gt;</p>
<p>&lt;s:property value="%{@com.common.Constant@func(#str)}"/&gt;</p>
<p>&nbsp;</p>
<p>func是类com.common.Constant里面的一个静态方法</p>
<p>str是动态的参数</p>
<p>&nbsp;</p>
<p><strong>方法二：</strong></p>
<p>&lt;s:bean name="com.common.StrutsHelper" id="helper" /&gt;</p>
<p>&lt;s:set name="str" value="'Hello World'"&gt;&lt;/s:set&gt;</p>
<p>&lt;s:property value="#helper.func(#str)" /&gt;</p>
<p>func是类com.common.StrutsHelper里面的一个普通方法</p>
<p>str是动态方法</p>
<p>s:bean其实是对类StrutsHelper的实例化，跟方法一有些区别，方法一里的函数必须是静态的</p>
</div>
<img src ="http://www.blogjava.net/banxitan/aggbug/269056.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/banxitan/" target="_blank">MikyTan</a> 2009-05-05 20:42 <a href="http://www.blogjava.net/banxitan/archive/2009/05/05/269056.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>xmlbeans dom level 3 not implemented</title><link>http://www.blogjava.net/banxitan/archive/2009/04/14/265426.html</link><dc:creator>MikyTan</dc:creator><author>MikyTan</author><pubDate>Tue, 14 Apr 2009 02:11:00 GMT</pubDate><guid>http://www.blogjava.net/banxitan/archive/2009/04/14/265426.html</guid><wfw:comment>http://www.blogjava.net/banxitan/comments/265426.html</wfw:comment><comments>http://www.blogjava.net/banxitan/archive/2009/04/14/265426.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/banxitan/comments/commentRss/265426.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/banxitan/services/trackbacks/265426.html</trackback:ping><description><![CDATA[<p>今天在用XmlBeans解析XML DOC时，遇到&#8220;xmlbeans dom level 3 not implemented&#8221;的解决办法！<br />
<br />
问题产生的原因：<br />
&nbsp;&nbsp;&nbsp; 1、由于在生成的XML结构中插入了一些未在XSD中定义的节点，那么这些节点无法用XMLBeans所采用的对象的方法获取，只能采用DOM的方式来处理，但在处理的过程中报&#8220;xmlbeans dom level 3 not implemented&#8221;<br />
<span style="color: rgb(0, 128, 0);"><br />
//</span><span style="color: rgb(0, 128, 0);">实例化一个文档构建器工厂</span><span style="color: rgb(0, 128, 0);"><br />
</span>DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();<br />
factory.setNamespaceAware(true);<br />
<span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">通过文档构建器工厂获取一个文档构建器</span><span style="color: rgb(0, 128, 0);"><br />
</span>DocumentBuilder builder = factory.newDocumentBuilder(); <br />
<span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">通过文档通过文档构建器构建一个文档实例</span><span style="color: rgb(0, 128, 0);"><br />
</span>AssertionDocument assertionDoc = AssertionDocument.Factory.parse(new File(&#8221;xml/assertion.xml&#8221;), loadOptions);</p>
<p>Document doc = builder.parse(new InputSource(new StringReader(assertionDoc.toString())));<br />
doc.getDocumentElement().setIdAttribute(&#8221;AssertionID&#8221;, true);<br />
<br />
<br />
</p>
<img src ="http://www.blogjava.net/banxitan/aggbug/265426.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/banxitan/" target="_blank">MikyTan</a> 2009-04-14 10:11 <a href="http://www.blogjava.net/banxitan/archive/2009/04/14/265426.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>String 和 InputStream 的转换</title><link>http://www.blogjava.net/banxitan/archive/2009/04/14/265422.html</link><dc:creator>MikyTan</dc:creator><author>MikyTan</author><pubDate>Tue, 14 Apr 2009 02:04:00 GMT</pubDate><guid>http://www.blogjava.net/banxitan/archive/2009/04/14/265422.html</guid><wfw:comment>http://www.blogjava.net/banxitan/comments/265422.html</wfw:comment><comments>http://www.blogjava.net/banxitan/archive/2009/04/14/265422.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/banxitan/comments/commentRss/265422.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/banxitan/services/trackbacks/265422.html</trackback:ping><description><![CDATA[<p><span style="color: red;">1、String --&gt; InputStream</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; InputStrem is = <span style="color: rgb(127, 29, 29);">new</span><span style="color: rgb(0, 0, 0);"> ByteArrayInputStream(str.getBytes());<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; or<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ByteArrayInputStream stream<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(127, 29, 29);">new</span><span style="color: rgb(0, 0, 0);"> ByteArrayInputStream(str.getBytes());<br />
</span><span style="color: red;">2、InputStream--&gt;String</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BufferedReader in <span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(127, 29, 29);">new&nbsp; </span><span style="color: rgb(0, 0, 0);">BufferedReader(</span><span style="color: rgb(127, 29, 29);">new</span><span style="color: rgb(0, 0, 0);"> InputStreamReader(is));<br />
&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;StringBuffer buffer </span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(127, 29, 29);">new</span><span style="color: rgb(0, 0, 0);"> StringBuffer();<br />
&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;String line </span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 0);">""</span><span style="color: rgb(0, 0, 0);">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: rgb(127, 29, 29);">while</span><span style="color: rgb(0, 0, 0);"> ((line </span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"> in.readLine()) </span><span style="color: rgb(0, 0, 0);">!=</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(127, 29, 29);">null</span><span style="color: rgb(0, 0, 0);">){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; buffer.append(line);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp; </span><span style="color: rgb(127, 29, 29);">return</span><span style="color: rgb(0, 0, 0);"> buffer.toString();</span><br />
<br />
</span></p>
<img src ="http://www.blogjava.net/banxitan/aggbug/265422.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/banxitan/" target="_blank">MikyTan</a> 2009-04-14 10:04 <a href="http://www.blogjava.net/banxitan/archive/2009/04/14/265422.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Struts2 之 CheckBox 小记</title><link>http://www.blogjava.net/banxitan/archive/2009/04/13/265310.html</link><dc:creator>MikyTan</dc:creator><author>MikyTan</author><pubDate>Mon, 13 Apr 2009 07:58:00 GMT</pubDate><guid>http://www.blogjava.net/banxitan/archive/2009/04/13/265310.html</guid><wfw:comment>http://www.blogjava.net/banxitan/comments/265310.html</wfw:comment><comments>http://www.blogjava.net/banxitan/archive/2009/04/13/265310.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/banxitan/comments/commentRss/265310.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/banxitan/services/trackbacks/265310.html</trackback:ping><description><![CDATA[今天在项目中有用到 Struts2 的Checkbox,其中最重要的属性为 Value跟fieldValue<br />
&nbsp;EG:<br />
&nbsp;&nbsp;&nbsp; &lt;td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;s:checkbox id="hotel.hotelRoom.vCR" name="hotel.hotelRoom.vCR" <span style="color: rgb(0, 0, 255);">value="%{hotel.hotelRoom.vCR.equals('false')?'false':'true'}"&nbsp;</span><span style="color: red;">fieldValue="VCR</span>" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VCR<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/td&gt;<br />
<br />
当在属性中用到fileValue属性，当该Checkbox项被选中时，那么在 Action中取值即为FiledValue所对应的值，当未被选中时，会有一个默认的值false;<br />
<br />
<span style="color: rgb(0, 0, 255);">value="%{hotel.hotelRoom.vCR.equals('false')?'false':'true'}"</span>&nbsp; 当用户提交选中的项后回到Input页面，仍然能正确显示用户刚才所选中的项：<br />
<br />
附：(转载)<br />
<p>#、%和$符号在OGNL表达式中经常出现，而这三种符号也是开发者不容易掌握和理解的部分。在这里笔者简单介绍它们的相应用途。<br />
1．#符号的用途一般有三种。</p>
<p>&nbsp;&nbsp; 1)访问非根对象属性，例如示例中的#session.msg表达式，由于Struts 2中值栈被视为根对象，所以访问其他非根对象时，需要加#前缀。</p>
<p>实际上，#相当于ActionContext. getContext()；#session.msg表达式相当于ActionContext.getContext().getSession(). getAttribute</p>
<p>("msg") 。</p>
<p>&nbsp;&nbsp;&nbsp; 2)用于过滤和投影（projecting）集合，如示例中的persons.{?#this.age&gt;20}。</p>
<p>&nbsp;&nbsp;&nbsp; 3)用来构造Map，例如示例中的#{'foo1':'bar1','foo2':'bar2'}。</p>
<p>2．%符号</p>
<p>%符号的用途是在标志的属性为字符串类型时，计算OGNL表达式的值。如下面的代码所示：<br />
构造Map<br />
&lt;s:set name="foobar" value="#{'foo1':'bar1', 'foo2':'bar2'}" /&gt;</p>
<p>&lt;p&gt;The value of key "foo1" is &lt;s:property value="#foobar['foo1']" /&gt;&lt;/p&gt;</p>
<p>&lt;p&gt;不使用%：&lt;s:url value="#foobar['foo1']" /&gt;&lt;/p&gt;</p>
<p>&lt;p&gt;使用%：&lt;s:url value="%{#foobar['foo1']}" /&gt;&lt;/p&gt;</p>
<p>&nbsp;<br />
3．$符号</p>
<p>$符号主要有两个方面的用途。</p>
<p>&nbsp;&nbsp; 在国际化资源文件中，引用OGNL表达式，例如国际化资源文件中的代码：reg.agerange=国际化资源信息：年龄必须在${min}同${max}之间</p>
<p>。</p>
<p>&nbsp;&nbsp;&nbsp; 在Struts 2框架的配置文件中引用OGNL表达式，例如下面的代码片断所示：</p>
<p>&lt;validators&gt;</p>
<p>&nbsp;&nbsp;&nbsp; &lt;field name="intb"&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;field-validator type="int"&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param name="min"&gt;10&lt;/param&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param name="max"&gt;100&lt;/param&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;message&gt;BAction-test校验：数字必须为${min}为${max}之间！&lt;/message&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/field-validator&gt;</p>
<p>&nbsp;&nbsp;&nbsp; &lt;/field&gt;</p>
<p>&lt;/validators&gt;</p>
<img src ="http://www.blogjava.net/banxitan/aggbug/265310.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/banxitan/" target="_blank">MikyTan</a> 2009-04-13 15:58 <a href="http://www.blogjava.net/banxitan/archive/2009/04/13/265310.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>